严格来说这个跟node没什么关系,是我不够了解回调函数。我想接受到get请求后引用一方法,在数据库中获得值后返回回来再send出去。
以前一直用的都是赋给一个全局变量,但这个肯定不是最好的办法啦
function select(id) {
var result = null;
var mysql = require('mysql');
var connection = mysql.createConnection({
host : 'localhost',
user : 'root',
password : 'root'
});
connection.connect();
connection.query("use mldn");
connection.query(
'SELECT * FROM emp WHERE empno = ' + id,
function (err, results, fields) {
if (err) {
throw err;
}
connection.end();
return results;
}
);
//下面是没用的
//return results;
}
router.get('/user',function(req,res) {
//我想在这里获得数据再传出去,但这样是失败的
res.send(select(req.query.userid));
res.end()
})
リーリーPromise
でカプセル化します。擬似コードはほぼこれと似ています。