【发布时间】:2021-04-30 07:17:30
【问题描述】:
我正在使用 mongoose,在从本地 mongodb 服务器 (mongod) 移动到 mongodb atlas cloud 后遇到了这个问题:TypeError: Cannot read property 'length' of undefined
这是导致问题的获取代码的 sn-p
app.get('/', function(req, res) {
Item.find({}, function(err, results) {
//Item is a mongoose model
if (results.length === 0) {
item.save();
res.redirect("/");
} else {
res.render('toDoLists', { Title: title, addedItems: results });
//using ejs
}
});
});
这是 github 中的全部代码:
https://github.com/oubaydos/toDoList-webDevLearningPath/blob/main/app.js
【问题讨论】:
-
在任何操作之前检查错误
console.log(err) -
@turivishal 我试过了,它没有提供太多信息:在函数实例上发出“错误”事件:在 C:\Users**\node_modules\mongoose\lib\model.js:4888 :13 在 C:\Users**\node_modules\mongoose\lib\helpers\promiseOrCallback.js:16:11 [... 匹配原始堆栈跟踪的行 ...] 在 processTimers (internal/timers.js:492:7 )
-
可能是连接问题,你要检查你的连接。 TypeError 告诉您
response未定义。 -
@ISAE 我不认为这是连接问题,如果我使用 mongo 命令(客户端控制台)而不是 mongoose,一切都可以正常工作。问题在我移至 mongodb atlas 后开始出现,似乎interpeter 无法创建项目模型。如果你检查了 github 中的代码,并告诉我你的想法,那就太好了!
-
在您的 app.js 中乍一看,mongoose.connect 指向您的本地主机,而不是任何 atlas 连接
标签: javascript node.js mongodb mongoose mongodb-atlas