gpt4 book ai didi

javascript - 将数据保存到 MongoDb 中会返回一个 ObjectParameterError

转载 作者:行者123 更新时间:2023-11-30 09:13:54 30 4
gpt4 key购买 nike

我正在练习使用 Node.js 将数据保存到 MongoDb。

我已经设置了 Express 服务器并创建了一个 Mongoose 模型,但是当我尝试通过 Postman 保存一些数据时,它一直返回一个 ObjectParameterError。

Mongoose 版本为 5.5.13,Express 版本为 4.17.1。

通过 Mongoose 连接到 MongoDb 没有问题,因为它至少不会返回任何错误,但问题是当我试图通过 post 请求保存一些数据时。

这是来 self 的 server.js 的发布请求:

router.post("/create_contact", (req, res) => {
const { name, number } = req.body;

let contact = new ContactData(name, number);

contact.save((error, contact) => {
if (error) {
return console.error(error);
}

return res.json(contact);
});
});

我的 data.js 定义了 Mongoose 模式和模型:

const mongoose = require("mongoose");

const ContactSchema = mongoose.Schema({
name: String,
number: Number
});

module.exports = mongoose.model("ContactData", ContactSchema);

如您所见,它只有两种类型的数据:姓名和号码。

我想将这个简单的联系人数据保存到本地 MongoDb 中,但出现了这个错误:

ObjectParameterError: Parameter "obj" to Document() must be an object, got John Doe
at new ObjectParameterError (D:\LearnReact\db\backend\node_modules\mongoose\lib\error\objectParameter.js:25:11)
at model.Document (D:\LearnReact\db\backend\node_modules\mongoose\lib\document.js:73:11)
at model.Model (D:\LearnReact\db\backend\node_modules\mongoose\lib\model.js:96:12)
at new model (D:\LearnReact\db\backend\node_modules\mongoose\lib\model.js:4580:15)
at router.post (D:\LearnReact\db\backend\server.js:28:17)
at Layer.handle [as handle_request] (D:\LearnReact\db\backend\node_modules\express\lib\router\layer.js:95:5)
at next (D:\LearnReact\db\backend\node_modules\express\lib\router\route.js:137:13)
at Route.dispatch (D:\LearnReact\db\backend\node_modules\express\lib\router\route.js:112:3)
at Layer.handle [as handle_request] (D:\LearnReact\db\backend\node_modules\express\lib\router\layer.js:95:5)
at D:\LearnReact\db\backend\node_modules\express\lib\router\index.js:281:22
at Function.process_params (D:\LearnReact\db\backend\node_modules\express\lib\router\index.js:335:12)
at next (D:\LearnReact\db\backend\node_modules\express\lib\router\index.js:275:10)
at Function.handle (D:\LearnReact\db\backend\node_modules\express\lib\router\index.js:174:3)
at router (D:\LearnReact\db\backend\node_modules\express\lib\router\index.js:47:12)
at Layer.handle [as handle_request] (D:\LearnReact\db\backend\node_modules\express\lib\router\layer.js:95:5)
at trim_prefix (D:\LearnReact\db\backend\node_modules\express\lib\router\index.js:317:13)

我错过了什么?预先感谢您的帮助。

最佳答案

在:

const ContactSchema = mongoose.Schema({
name: String,
number: Number
});

您忘记添加 new 即:new mongoose.Schema({

{ ObjectParameterError: Parameter "obj" to Document() must be an object Mostly caused by parameters passed to mongoose that is NOT an object.

let contact = new ContactData(name, number) 中,将 (name,number) 修改为 ({name:name, number:number} ) 或只是 ({name, number}) 因为它们具有相同的名称。

关于javascript - 将数据保存到 MongoDb 中会返回一个 ObjectParameterError,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56520377/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com