Ниже того, что я пытаюсь сделать, это передать имя таблицы keyName, извлекая из запроса
Но я столкнулся с deaslock
Я хотел узнать, следую ли я надлежащим протоколам для ответа JSON
[Часть-оф-Экспресс-Code]
app.get('/RestaurantDesc/:Key',function(request,response,next){
var keyName=request.query.Key;
var name_of_restaurants, RestaurantTimings;
async.series( [
// Get the first table contents
function ( callback ) {
connection.query('SELECT * FROM ',keyName, function(err, rows, fields)
{
console.log('Connection result error '+err);
name_of_restaurants = rows;
callback();
});
},
// Get the second table contents
function ( callback ) {
connection.query('SELECT * FROM RestaurantTimings', function(err, rows, fields)
{
console.log('Connection result error '+err);
RestaurantTimings = rows;
callback();
});
}
// Send the response
], function ( error, results ) {
response.json({
'restaurants' : name_of_restaurants,
'RestaurantTimings' : RestaurantTimings
});
} );
} );
Я получаю вывод как Can not GET /RestaurantDesc/
Любые идеи
ваш маршрут должен быть пустым, путь, к которому вы можете получить доступ через запрос GET. например: вы должны иметь доступ к нему через
http://example.com/RestaurantDesc/anyKeyHere
и в вашем коде вы
var keyName = request.query.Key
req.query содержит переменные запроса, см. http://expressjs.com/api.html#req.query
Таким образом, ваша переменная keyName не будет содержать anyKeyHere.
req.params.Key будет содержать значение anyKeyHere;
но вам нужно будет передать его по URL-адресу.
если вам нужно передать ключевые данные в запросе, вы можете это сделать.
app.get('/RestaurantDesc',function(request,response,next){
var keyName=request.query.Key;
});
и пропустите ключ, подобный этому в вашем URL
http://example.com/RestaurantDesc/?Key=restaurnetkeyHere
Попробуйте пройти руководство в экспресс-узле и понять маршруты и как это работает.
Если вы получаете "Can not GET /RestaurantDesc/
", это потому, что вы не настроили этот маршрут, попробуйте /RestaurantDesc/something
. request.query используется для поисковых запросов, то есть вещей, которые появляются после запроса в url. Вместо этого используйте request.param.Key.
Кроме того, для лучших практик вы должны вводить имена ресурсов в нижнем регистре и использовать более короткий req/res вместо запроса/ответа.
req
против request
чисто мнение , основанное. req
что большинство примеров кода использует req
, не означает, что он согласуется с другими вашими соглашениями об именах. Я думаю, что «лучшая практика» будет просто соответствовать вашей кодовой базе. В моей последней организации мы предпочитали параметры, которые не были аббревиатурами, в общем, поэтому мы использовали request
и response
потому что он был для нас непротиворечивым и облегчал не путать их сразу.
request.query
и request.param
....... Если Клиент отправляет запрос в виде пары (ключ, значение) на сервер ...... как сервер должен обрабатывать его. ... я должен использовать request.query
или request.param