【发布时间】:2014-04-22 19:50:43
【问题描述】:
对于一个项目,我正在使用 mongoose 从 mongoDB 获取用户和密码验证后的主应用程序模块的返回值。我可以使用console.log(在代码中注释)打印输出结果“User.findOne”,但无法将此结果传递给主模块“app.js”。如果在 User.js 模块中执行,我将得到“未定义”作为输出或“结果”的初始化值。
需要帮助了解如何从 User.js 获取返回值(以下代码中的“结果”)到 app.js。
我不是在寻找使用“res.send”作为网络响应返回这个值。我主要是在探索谷歌的问题时发现的。
谢谢。
app.js
var user = require ('./User');
console.log(user.authentication("user","pass"));
用户.js
var User = require('./models/Mongoose');
exports.authentication = function(user, pass){
var query = {uid: user};
var result;
//var result = "None";
User.findOne(query, function(err,obj) {
if (err) {
result = "error: find method";
} else {
if (obj != null) {
if ( pass == obj.password) {
//console.log("success: authorisation successful");
result = "authentication successful";
} else {
//console.log("error: password incorrect");
result = "authentication failed";
}
} else {
result = "error: absent user";
}
}
});
return result;
};
app.js 的输出:
undefined
【问题讨论】: