Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/12.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
Javascript 模型未保存到MongoDB_Javascript_Mongodb_Express - Fatal编程技术网

Javascript 模型未保存到MongoDB

Javascript 模型未保存到MongoDB,javascript,mongodb,express,Javascript,Mongodb,Express,我正在开发一个实践API来习惯创建模型和路由,但似乎无法获得将数据保存到MongoDB的第一条路由 我从邮递员那里得到以下错误: { "message": { "errors": { "name": { "message": "Path `name` is required.", "name": "ValidatorError", "properties": { "me

我正在开发一个实践API来习惯创建模型和路由,但似乎无法获得将数据保存到MongoDB的第一条路由

我从邮递员那里得到以下错误:

{
"message": {
    "errors": {
        "name": {
            "message": "Path `name` is required.",
            "name": "ValidatorError",
            "properties": {
                "message": "Path `name` is required.",
                "type": "required",
                "path": "name"
            },
            "kind": "required",
            "path": "name"
        },
        "description": {
            "message": "Path `description` is required.",
            "name": "ValidatorError",
            "properties": {
                "message": "Path `description` is required.",
                "type": "required",
                "path": "description"
            },
            "kind": "required",
            "path": "description"
        }
    },
    "_message": "Universes validation failed",
    "message": "Universes validation failed: name: Path `name` is required., description: Path `description` is required.",
    "name": "ValidationError"
}
} 我的模型和路线如下所示:

const mongoose=require('mongoose');
const universechma=新的mongoose.Schema({
姓名:{
类型:字符串,
必填项:true
},
说明:{
类型:字符串,
必填项:true
},
日期:{
类型:日期,
默认值:Date.now
}
});
//导出路由-----------------数据库中的名称,它应该使用的架构
module.exports=mongoose.model('Universes',UniverseSchema);
const express=require('express');
const router=express.router();
const Universe=require(“../models/Universe”);
//初始路线将呈现我们的宇宙页面
路由器.get('/',异步(req,res)=>{
res.send(“宇宙页”);
试一试{
const universes=等待Universe.find();
res.json(宇宙);
}捕获(错误){
res.json({message:error});
}
});
//路线用于创建一个宇宙
//创建异步日志
路由器.post('/',异步(请求,恢复)=>{
//创建宇宙模型的实例
常量宇宙=新宇宙({
名称:req.body.name,
描述:req.body.description
});
//试图通过一次尝试来拯救我们的新宇宙
试一试{
const savedUniverse=wait universe.save()
res.json(savedUniverse);
console.log('saved');
}捕获(错误){
res.json({message:error});
console.log(“未保存”);
}
});

module.exports=路由器很可能是您将数据发送到API的方式,以及它如何解析数据

试试这个:

  • 在Postman中,使用最常用的方法格式通过POST请求发送数据。这是:“raw”,并将数据作为application/json发送

  • 在API端,确保能够解析应用程序/json请求。这款withing Express最常用的包装是

  • 请记住验证实体:)


    希望有帮助

    很可能是您将数据发送到API的方式,以及它如何解析数据

    试试这个:

  • 在Postman中,使用最常用的方法格式通过POST请求发送数据。这是:“raw”,并将数据作为application/json发送

  • 在API端,确保能够解析应用程序/json请求。这款withing Express最常用的包装是

  • 请记住验证实体:)


    希望有帮助

    添加主体解析器中间件。似乎正在接收未定义。我的App.js文件中有主体解析器。我需要在每条路线上都实例化它吗?不需要。然后尝试在保存路由中控制台req.body,检查是否有正确的数据。在这种情况下,数据库没有连接。你是一个传奇人物,我的朋友。问题是我导入.env文件的方式。我有require('dotenv').config();而不是require('dotenv/config');添加主体解析器中间件。似乎正在接收未定义。我的App.js文件中有主体解析器。我需要在每条路线上都实例化它吗?不需要。然后尝试在保存路由中控制台req.body,检查是否有正确的数据。在这种情况下,数据库没有连接。你是一个传奇人物,我的朋友。问题是我导入.env文件的方式。我有require('dotenv').config();而不是require('dotenv/config');嘿,谢谢你提供的好消息。我在PostMan中检查了我的设置,并将其修改为{application/json}。不幸的是,它仍然无法保存我传递的数据。它似乎进入了tryCatch块,它被卡住了,我不知道为什么。我在console.log中记录“universe”变量,可以看到其中的数据。有什么想法吗?解决了。上面的用户提到我的数据库可能没有连接。看起来我的DB_CONNECT变量实际上没有被导入。非常感谢你的帮助,这对我的邮递员问题很有帮助。很高兴你能成功。我已经用Mongoose连接和错误日志更新了代码段,以防出错。嘿,谢谢你提供的所有好信息。我在PostMan中检查了我的设置,并将其修改为{application/json}。不幸的是,它仍然无法保存我传递的数据。它似乎进入了tryCatch块,它被卡住了,我不知道为什么。我在console.log中记录“universe”变量,可以看到其中的数据。有什么想法吗?解决了。上面的用户提到我的数据库可能没有连接。看起来我的DB_CONNECT变量实际上没有被导入。非常感谢你的帮助,这对我的邮递员问题很有帮助。很高兴你能成功。我已经用Mongoose连接和错误日志更新了代码段,以防出错。
    const mongoose= require('mongoose')
    const express = require('express')
    const bodyParser = require('body-parser')
    const Universe = require('../models/Universe')
    
    const app = express()
    
    // Connect to MongoDB
    mongoose.connect(/* MongoDB connection string */, /* Connection options */);
    mongoose.connection.on('error', err => {
      console.error('MongoDB connection error: ' + err)
      process.exit(-1)
    })
    
    // parse JSON
    app.use(bodyParser.json({ type: 'application/json' }))
    
    // Initial route that will render our universes page
    app.get('/', async (req , res) => {
      res.send('Universes Page')
      try {
          const universes = await Universe.find()
          res.json(universes)
      } catch (error) {
          res.json({ message: error })
      }
    });
    
    // Route use to create a universe
    // Create async our post 
    app.post('/', async (req, res) => {
      // Create an instance of the Universe model
      const universe = new Universe({
          name : req.body.name,
          description : req.body.description
      })
      //  Attempt to save our new universe with a try catch
      try {
          const savedUniverse  = await universe.save()
          res.json(savedUniverse)
          console.log('saved')
      } catch (error) {
          res.json({ message: error})
          console.log('Not saved')
      }
    });
    
    app.listen(3000)