我想要做的是通过从请求中提取将表名传递给 keyName
但我正面临deaslock
我想知道我是否遵循JSON响应的正确协议
[第-的快车-代码]
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
});
} );
} );
我输出的内容为GET /RestaurantDesc/
任何想法
答案 0 :(得分:1)
如果您收到“无法获取/RestaurantDesc/
”是因为您尚未设置此路线,请尝试/RestaurantDesc/something
。 request.query用于搜索词,即在url中的questionmaek后面的内容。请改用request.param.Key。
同样,对于最佳实践,您应该小写资源名称并使用较短的req / res而不是请求/响应。
答案 1 :(得分:1)
您的路线应该是路径,您可以通过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;
});
并在您的网址中传递这样的密钥
http://example.com/RestaurantDesc/?Key=restaurnetkeyHere
尝试浏览快递站点中的指南,了解路线及其工作原理。