0

以下に、私が定義してハードコーディングした 2 つの get リクエストがあります

サーバーからデータを取得し、JSON を生成します。

2 つの get リクエストを 1 つに結合する方法はありますか? クライアントから受け取る i?p に応じて出力を生成する 1 つの get リクエストだけでオンザフライで JSON を生成することを意味します。


私のExpressプログラム::

var express = require('express')
  , async = require('async')
  , http = require('http')
  , mysql = require('mysql'); 

var app = express();

var connection = mysql.createConnection({
    host: 'localhost',
    user: 'xxx',
    password: "xxx",
    database: 'collages'
});

connection.connect(); 

// all environments
app.set('port', process.env.PORT || 7002);

//
//REQUEST FOR FIRST REQUEST
//

app.get('/',function(request,response){
    var name_of_Collages, RestaurantTimings;

    async.series( [
        // Get the first table contents
        function ( callback ) {
            connection.query('SELECT * FROM restaurants', function(err, rows, fields)
                {
                        console.log('Connection result error '+err);
                        name_of_Collages = 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({
        'Collages' : name_of_Collages,
        'RestaurantTimings' : RestaurantTimings
    });
} );

} );



//
//REQUEST FOR Collage SCREEN
//


app.get('/College1',function(request,response){
    var College1, RestaurantTimings;

    async.series( [
        // Get the first table contents
        function ( callback ) {
            connection.query('SELECT * FROM College1', function(err, rows, fields)
                {
                        console.log('Connection result error '+err);
                        College1 = 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({
        'College' : College1,
        'RestaurantTimings' : RestaurantTimings
    });
} );


} );



http.createServer(app).listen(app.get('port'), function(){
  console.log('Express server listening on port ' + app.get('port'));
});

[後 - 編集]

今、私は上記のようにエクスプレスプログラムを持っています::それは何をしますか? -> JSON をクライアントに送り返します

私は2つのgetリクエストを定義しました::

ケース 1> :: http:// 40.2.3.3:8213/Mysql から取得したデータから、JSON 応答を取得する場合table1- > table1 は大学のリストです

ケース 2> :: 使用すると、Mysqlhttp:// 40.2.3.3:8213/College1から取得したデータから、別の JSON 応答を取得しますtable2-> テーブル 2 は、college1 の説明です

完全なアプリケーションをサーバー側にデプロイします

  • 明日table1、新しい大学名に新しい値を追加し、それをmysqlデータベースで定義します
  • 次に、mysql データベースにも新しい college2 の新しいデータベース テーブルを追加します。

新しい JSON を取得するために高速コードを変更するべきではありません::

  • クライアントがcollege2の情報を要求した場合..... Expressプログラムはその入力を受け取り、FLYでJSONを生成する必要があります!!

私がはっきりしていることを願っています

ありがとう、

4

3 に答える 3

0

app.allの代わりに を使用してみましたかapp.get:

app.all('/:command?',function(request,response){
    var command = users[req.params.command];

ifこれにより、リクエストにいくつかの条件を追加して (command変数に設定)、これら 2 つを 1 つにマージできます。

于 2013-08-27T09:12:47.103 に答える