[英]Why Variable is undefined in nodejs express
我正在使用node js express並從控制器中調用模型。當我調用模型表單控制器並在result變量中獲取結果並將其打印在console.log(result)
它是undefined
。
控制者
var user_model=require('../models/user');
exports.get_user = function(req, res) {
var result = user_model.get_users();
console.log(result);
}
模型
var connection=require('../config/connection');
exports.get_users = function() {
connection.query('SELECT * FROM users', function(err, rows) {
if(err) {
retrun err;
}
return rows;
});
}
使用Promise處理異步調用
// **Controller**
var user_model = require('../models/user');
exports.get_user = function (req, res) {
user_model.get_users().then((result) => {
console.log(result);
}).catch(err => console.log(err));
}
// **Model**
var connection = require('../config/connection');
exports.get_users = function () {
return new Promise((resolve, reject) => {
connection.query('SELECT * FROM users', function (err, rows) {
if (err) {
reject(err);
}
resolve(rows);
});
}
})
}
之所以發生這種情況,是因為您要在查詢完成之前合並結果。 節點是異步的。 與php節點不同的是,在轉到下一行之前,不必等待查詢完成。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.