现在有个需求,node http server启动之前,需要到mysql查询一些数据,根据查询得到的数据,http决定每次返回的数据
伪代码
var price = -1; var userId = 'some user provided value'; var sql = 'SELECT max(price) FROM users WHERE id = ' + connection.escape(userId); connection.query(sql, function(err, results) { price = results.price; });
server = http.createServer(function (request, response) { handler(request); }).listen(8012);
主要想问一下,查询mysql和处理http请求之间是异步的吗? 如果是异步的,怎么保证在处理http请求之前,我查询mysql然后做一写操作呢?
回复 (4)
D
把server.listen(8012)放在function(err,results){}回调里面不就行了吗?
L
引用 dengqiao把server.listen(8012)放在function(err,results){}回调里面不就行了吗?
handler(request)需要用到price
D
引用 dengqiao把server.listen(8012)放在function(err,results){}回调里面不就行了吗?
@linbo server = http.createServer(function (request, response) { handler(request); }).listen(8012); 整个放进去也是可以啊
L
引用 dengqiao把server.listen(8012)放在function(err,results){}回调里面不就行了吗?
@dengqiao 这样的话,mysql链接是不是一直占用着? 我想在程序启动的时候查询mysql然后释放掉链接,然后去处理http server
参与回复
登录后即可参与回复。登录