如何通过 JSON 对象将数据保存到 mongodb 数据库?

Posted

技术标签:

【中文标题】如何通过 JSON 对象将数据保存到 mongodb 数据库?【英文标题】:How to Save data to mongodb database by JSON object? 【发布时间】:2020-02-03 00:39:01 【问题描述】:

我想将数据保存到数据库中。我曾经使用数据库检查我的 URL。但我做不到。 它显示此消息:

DeprecationWarning:当前的 URL 字符串解析器已被弃用,并将 在未来的版本中被删除。要使用新的解析器,请传递选项 useNewUrlParser: true 到 MongoClient.connect。监听 3000 端口 _id:5d9775340007cc3c8cb34caf _id:5d9775340007cc3c8cb34caf, __v: 0 错误 [ERR_HTTP_HEADERS_SENT]: 发送到客户端后无法设置标头

这是我的路由器文件代码:

router.post("/timeTableRegistration", function(req, res) 
  const newTimeTable = new classTimeTable(
    object: req.body
  );
  console.log(newTimeTable);
  newTimeTable
    .save()
    .then(result => 
      console.log(result);
      res.json( state: true, msg: "Data Inserted Successfully..!" );
    )
    .catch(error => 
      console.log(error);
      res.json( state: false, msg: "Data Inserting Unsuccessfull..!" );
    );
  res.send("Success");
);

这是我的模型文件:

const mongoose = require("mongoose");
const Schema = mongoose.schema;

const classTimeTableSchema = mongoose.Schema(
  className:  type: String, require: true ,

  monday: 
    1:  type: String, require: true ,
    2:  type: String, require: true 
  ,
  tuesday: 
    1:  type: String, require: true ,
    3:  type: String, require: true 
  
);

const classTimeTable = (module.exports = mongoose.model(
  "classTimeTable",
  classTimeTableSchema
));

【问题讨论】:

您的连接是什么样的?像这样的东西mongoose.connect('mongodb://localhost:27017/myapp', useNewUrlParser: true); - 来自docs 没有 JSON 对象之类的东西,将工作日作为列名似乎是错误的数据库设计 【参考方案1】:

您只需在连接到 mongodb 的位置添加选项 useNewUrlParser: true 。它还在提供的错误中清楚地说明了这一点。标头已发送的通知是您之前已经使用过输出,因此这可能只是因为您没有正确捕获错误。

因此,可能在配置文件或应用程序设置/引导程序中的某处找到您与数据库的连接,然后只需添加该选项 useNewUrlParser: true

【讨论】:

以上是关于如何通过 JSON 对象将数据保存到 mongodb 数据库?的主要内容,如果未能解决你的问题,请参考以下文章

如何仅通过一次调用将一组对象保存到猫鼬数据库?

如何将json对象数组保存到猫鼬?

如何将json对象数组保存到猫鼬?

如何使用 LocalStorage 将 json 对象保存到 Assets 文件夹

如何将 json 输出保存在 String 对象中。重复数据写入所有拆分的文件中?

如何保存对象以供以后使用?通过 JSON 或其他方式发送并存储在数据库中然后恢复