开发者问题收集

通过Mongo Atlas typeerror:无法读取未定义的属性“长度”

2021-04-29
2483

我正在使用 mongoose,在从本地 mongodb 服务器(mongod)移动到 mongodb atlas cloud 后遇到了这个问题:TypeError:无法读取未定义的属性“length”

这是导致问题的 get 代码片段

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

2个回答

导致错误的根本原因是您声明的架构实际上根本不是架构。 您需要将其声明为 mongoose 架构,因此,您应该这样做:

const itemsSchema = {
    name: String
};

您应该这样做:

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

参考: mongoose.js 文档

ISAE
2021-04-29

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

oubaydos
2021-04-29