【发布时间】:2021-11-29 13:36:14
【问题描述】:
这个问题与NodeJS平台的mongoose模块有关。
当我运行以下命令时,我如何获得数据库的响应?:
router.get('/profileSettings', securePages, function(req, res, next){
databaseUserModel.findOne({'profileID':req.session.facebookProfileId}, function(err, userFromDB) {
if(userFromDB){
done(null, userFromDB);
} else {
console.log('Result does not exist');
}
});
res.render('profileSettings', {title:siteName + ': Profile Settings', user:userFromDB});
})
它似乎对我不起作用,因为 userFromDB 似乎不存在 - 在 findOne 和 res.render 方法中! (准确地说是未定义)
我的 databaseUserModel 如下所示:
var databaseUser = new mongoose.Schema({
profileID:String,
fullname:String,
profilePic:String,
email:String,
birthday:String,
location:String,
about:String
});
var databaseUserModel = mongoose.model('databaseUser', databaseUser);
错误信息是:
ReferenceError: userFromDB is not defined
at Object.handle (/Users/shayan/Repos/imo/routes/routes.js:75:84)
at next_layer (/Users/shayan/Repos/imo/node_modules/express/lib/router/route.js:103:13)
at Object.securePages [as handle] (/Users/shayan/Repos/imo/routes/routes.js:20:13)
at next_layer (/Users/shayan/Repos/imo/node_modules/express/lib/router/route.js:103:13)
at Route.dispatch (/Users/shayan/Repos/imo/node_modules/express/lib/router/route.js:107:5)
at /Users/shayan/Repos/imo/node_modules/express/lib/router/index.js:205:24
at Function.proto.process_params (/Users/shayan/Repos/imo/node_modules/express/lib/router/index.js:269:12)
at next (/Users/shayan/Repos/imo/node_modules/express/lib/router/index.js:199:19)
at next (/Users/shayan/Repos/imo/node_modules/express/lib/router/index.js:176:38)
我觉得这可能是我可能遗漏的一些非常简单的东西,但我只是开始接触 NodeJS(实际上是作为一个整体进行开发)。我之前为我的公司使用了一种小众语言(他们已经开发了它)所以请多多包涵。
任何意见都会对大家有所帮助!我真的被困住了
PS:我的 mongoose 对象的工作原理与我使用它来存储数据一样。
【问题讨论】:
-
如果您可以发布错误消息会有所帮助:)
-
当然好! :) - 添加了伴侣。菜鸟错误
-
find 方法也给你这个错误?
-
您是否尝试过添加登录以显示 err 或 userFromDB。例如:console.log(err);控制台.log(userFromDB); if (userFromDB){ 之前
-
是的,我都试了。顺便说一句,终于修好了。请参阅我对以下已批准答案的人的回复。谢谢大家!这里的社区很棒!