Kin*_*xit 25 mysql node.js npm express
我在哪里关闭mysql连接?
我需要按顺序运行查询.我正在编写目前看起来像这样的代码:
var sqlFindMobile = "select * from user_mobiles where mobile=?";
var sqlNewUser = "insert into users (password) values (?)";
//var sqlUserId = "select last_insert_id() as user_id";
var sqlNewMobile = "insert into user_mobiles (user_id, mobile) values (?,?)";
connection.connect(function(err){});
var query = connection.query(sqlFindMobile, [req.body.mobile], function(err, results) {
if(err) throw err;
console.log("mobile query");
if(results.length==0) {
var query = connection.query(sqlNewUser, [req.body.password], function(err, results) {
if(err) throw err;
console.log("added user");
var user_id = results.insertId;
var query = connection.query(sqlNewMobile, [user_id, req.body.mobile], function(err, results) {
if(err) throw err;
console.log("added mobile");
//connection.end();
});
});
}
});
//connection.end();
Run Code Online (Sandbox Code Playgroud)
(我是node,npm-express和npm-mysql的初学者.我试过搜索"快速mysql无法入队"来查找相关问题并且没有找到它们.)
也许问题是由于Node的异步性质,在连接已经关闭之后执行mySQL查询.尝试使用此代码在线程退出之前调用connection.end():
function exitHandler(options, err) {
connection.end();
if (options.cleanup)
console.log('clean');
if (err)
console.log(err.stack);
if (options.exit)
process.exit();
}
//do something when app is closing
process.on('exit', exitHandler.bind(null, {cleanup: true}));
Run Code Online (Sandbox Code Playgroud)
代码改编自@Emil Condrea,在node.js退出之前执行清理操作
| 归档时间: |
|
| 查看次数: |
45671 次 |
| 最近记录: |