0

Express コードのスニペットがあります

私がやろうとしているのは、リクエストから抽出してテーブル名をkeyNameに渡すことです

しかし、私はデッドロックに直面しています

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/

何か案は

4

2 に答える 2

1

ルートはパスである必要があります。GET リクエストを介してアクセスできるパスです。例:次の方法でアクセスできるはずです

http://example.com/RestaurantDesc/anyKeyHere

そしてあなたのコードには

var keyName = request.query.Key

req.query にはクエリ変数が含まれていますhttp://expressjs.com/api.html#req.queryを参照してください

したがって、keyName 変数には KeyHere は含まれません。

req.params.Key には値 anyKeyHere が含まれます。

ただし、URL パスで渡す必要があります。

クエリでキーデータを渡す必要がある場合は、これを行うことができます。

app.get('/RestaurantDesc',function(request,response,next){
   var keyName=request.query.Key;
 });

URLにこのようなキーを渡します

http://example.com/RestaurantDesc/?Key=restaurnetkeyHere

エクスプレス サイトのガイドに目を通してみて、ルーティングとその仕組みを理解してください。

于 2013-08-30T04:05:46.363 に答える
1

/RestaurantDesc/このルートを設定していないために「Cannot GET 」が表示される場合は、 を試してください/RestaurantDesc/something。request.query は、検索用語、つまり URL の質問の後に来るものに使用されます。代わりに request.param.Key を使用してください。

また、ベスト プラクティスとして、リソース名を小文字にし、リクエスト/レスポンスの代わりに短いリクエスト/レスを使用する必要があります。

于 2013-08-29T18:00:18.477 に答える