Node.js 如何在express中生成insert语句 我有下面的快速服务器代码 我想通过获取param值来启动insert语句 然后将param值插入数据库

Node.js 如何在express中生成insert语句 我有下面的快速服务器代码 我想通过获取param值来启动insert语句 然后将param值插入数据库,node.js,express,Node.js,Express,到目前为止,我所做的是学会了如何做出JSON响应:: var express = require('express') , async = require('async') , http = require('http') , mysql = require('mysql'); var app = express(); var connection = mysql.createConnection({ host: 'localhost', user: '*****

到目前为止,我所做的是学会了如何做出JSON响应::

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

var app = express();

var connection = mysql.createConnection({
    host: 'localhost',
    user: '*****',
    password: "*****",
    database: 'DB-NAME'
});

connection.connect();

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

app.use(express.static(__dirname + '/public/images'));


app.get('/Name/',function(request,response,next){

    var keyName=request.query.Key;
    var name_of_restaurants;
    async.series( [
        // Get the first table contents
        function ( callback ) {

           connection.query('SELECT * FROM RestaurantDescription where RestaurantName = ?', [keyName], function (err, rows, fields)
               {
                       console.log('Connection result error ' + err);
                       name_of_restaurants = rows;
                       callback();
               });

        }

   // Send the response
], function ( error, results ) {
    response.json({
        'restaurants' : name_of_restaurants
    });
} );
} );


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

我想做的是:

  • 我正在试图找到如何制作insert语句
  • 这样我就可以提取Param值并将该数据插入到 数据库
  • 如何修改上述代码以实现我的目标
希望我明白了


[编辑]
我不熟悉您使用的库,但我认为您应该在传递给
async.series
的数组中添加另一个函数。函数体的内容应与上述内容类似

async.series( [
  // Get the first table contents
  function(callback) {
    connection.query('SELECT * FROM RestaurantDescription where RestaurantName = ?', 
      [keyName], 
      function (err, rows, fields) {
        console.log('Connection result error ' + err);
        name_of_restaurants = rows;
        callback();
      }
    );
  },
  // inserting a value
  function(callback) {
    connection.query('INSERT INTO RestaurantDescription (RestaurantName) VALUES (?)', 
      [keyName], 
      function (err, rows, fields) {
        console.log('Connection result error ' + err);        
        callback();
      }
    );
  }
]
将发生的情况是,这两个函数都将异步执行,最后您仍将向浏览器发送响应

您已经通过
var keyName=request.query.Key获得了GET参数

如果计划使用POST参数,而不是

var keyName=request.query.Key;
您应该添加一个分析变量的中间件:

app.use(express.bodyParser());
然后

var keyName = request.body.Key;

我指的是这个评论

是的,编辑后的答案看起来像是可行的解决方案<代码>app.post
仅当您希望通过post获得应用请求时才应使用。如果您接受GET请求,那么
app.GET
将更好地工作。是的,您应该将
app.GET
更改为
app.post
,但是您还应该更改获取请求参数的方式。我建议你读这篇文章
var keyName = request.body.Key;