使用nodejs和mongoose,我正在尝试创建一个数据库文件,该文件使我可以查询数据库并返回结果,以便在不使用猫鼬的情况下使用。
。在我的数据库文件中,我有这个
db.js
module.exports = {
getUser: function (name) {
var u = User.findOne({username: name}).exec().then(function(user) {
console.log(user);
return user;
});
return u;
}
};
在我的其他文件中,我有
var db = require('./db')
var user_info = db.getUser("tom");
console.log(user_info);
当getuser函数被称为正确时,将我在db.js文件中查找的信息打印以下代码。
。console.log(user);
但是,我似乎找不到将数据库返回user_info的方法,我只是得到
Promise { <pending> }
我已经调查了。
谢谢
var db = require('./db')
var user_info = db.getUser("tom");
console.log(user_info);
user_info.then(user => {
const username = user.username;
console.log(username);
});
承诺执行。但是,您可以在.then
之后访问结果。
您必须在承诺捕获结果的承诺上致电.then
:
在这里检查承诺未决
您需要致电 .then
for getuser。
// db.js
module.exports = {
getUser: function (name) {
return User.findOne({
username: name
}).exec();
}
};
var db = require('./db');
db.getUser("tom").then((user) => {
console.log(user);
}).catch((err) => {
console.log(err);
});