用于查询结果的Simple Express程序

时间:2013-08-29 15:38:47

标签: mysql node.js express

我有一段Express代码

我想要做的是通过从请求中提取将表名传递给 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/

任何想法

2 个答案:

答案 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

尝试浏览快递站点中的指南,了解路线及其工作原理。