mongoose through mongo atlas TypeError: Cannot read property 'length' of undefined

mongoose through mongo atlas TypeError: Cannot read property 'length' of undefined

我正在使用 mongoose,我在从本地 mongodb 服务器 (mongod) 移动到 mongodb atlas cloud 后遇到了这个问题:TypeError: Cannot read 属性 'length' 未定义

这是导致问题的获取代码片段

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

错误的根本原因是您声明的模式根本不是真正的模式。 您需要将其声明为猫鼬模式,而不是

const itemsSchema = {
    name: String
};

你应该这样做:

const itemSchema = new mongoose.Schema({
    name: String
});

参考:mongoose.js docs

感谢 ISAE,我发现问题出在与 mongodb atlas 数据库的连接上,我与本地主机建立了连接。