Node.js 如何在express中生成insert语句 我有下面的快速服务器代码 我想通过获取param值来启动insert语句 然后将param值插入数据库
到目前为止,我所做的是学会了如何做出JSON响应::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: '*****
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;