Node.js 如何正确保存Mongoose文档?
提前感谢您对这个非常基本的问题的关注!我目前正在从事一个FreeCodeCamp项目,涉及Node、MongoDB和Mongoose(),当我在Mongoose模型上调用Node.js 如何正确保存Mongoose文档?,node.js,mongodb,mongoose,Node.js,Mongodb,Mongoose,提前感谢您对这个非常基本的问题的关注!我目前正在从事一个FreeCodeCamp项目,涉及Node、MongoDB和Mongoose(),当我在Mongoose模型上调用.save()时,我非常困惑到底发生了什么。您可以看到有关Glitch的完整内容,但这里是一个具体部分,它的行为与我预期的不同: const { User } = require("./models/user"); ... app.post("/api/exercise/new-user", (req, res) =>
.save()
时,我非常困惑到底发生了什么。您可以看到有关Glitch的完整内容,但这里是一个具体部分,它的行为与我预期的不同:
const { User } = require("./models/user");
...
app.post("/api/exercise/new-user", (req, res) => {
var newUser = new User({ name: req.body.username });
newUser.save((error) => console.error(error));
res.json({username: newUser.name, _id: newUser._id})
});
下面是models/user.js
:
const mongoose = require("mongoose");
exports.User = mongoose.model(
"User",
new mongoose.Schema({
name: { type: String, required: true }
})
);
我在浏览器中看到了JSON响应,其中包含了我期望的信息,但在MongoDB上的数据库中没有看到新文档。我错过了什么?据我所知,当我在newUser
上调用.save()
时,文档应该显示在MongoDB中。在以前的项目中,我就是这样做的,而且很有效,我不知道在这种情况下有什么不同
还有一个我不喜欢在FCC课程中解释的更广泛的问题是:Mongoose在MongoDB中创建了一个什么样的集合?是在我创建新模型的时候吗?就像我的代码中的这一点:
const mongoose = require("mongoose");
exports.User = mongoose.model(
"User",
new mongoose.Schema({
name: { type: String, required: true }
})
);
还是在我去保存模型的实例时发生的?MongoDB何时被告知创建集合?非常感谢 嗯,我又做了一次,答案很简单。我看到我从
mongoose.connect()
调用中得到了一个错误,因为它在以mongodb+srv://
开头的URI上遇到了问题,而不仅仅是mongodb://
。然后我看到,因为我从FCC那里获得了启动项目,它有一些过时的Mongoose和MongoDB版本,只需将这两个版本更新为最新版本(MongoDB的3.5.7和Mongoose的5.9.12)就解决了问题,我现在能够正确保存文档了 嗯,我又做了一次,答案很简单。我看到我从mongoose.connect()
调用中得到了一个错误,因为它在以mongodb+srv://
开头的URI上遇到了问题,而不仅仅是mongodb://
。然后我看到,因为我从FCC那里获得了启动项目,它有一些过时的Mongoose和MongoDB版本,只需将这两个版本更新为最新版本(MongoDB的3.5.7和Mongoose的5.9.12)就解决了问题,我现在能够正确保存文档了