Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/42.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js 如何正确保存Mongoose文档?_Node.js_Mongodb_Mongoose - Fatal编程技术网

Node.js 如何正确保存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) =>

提前感谢您对这个非常基本的问题的关注!我目前正在从事一个FreeCodeCamp项目,涉及Node、MongoDB和Mongoose(),当我在Mongoose模型上调用
.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)就解决了问题,我现在能够正确保存文档了