【问题标题】:UnhandledPromiseRejectionWarning: ValidationError While inserting dataUnhandledPromiseRejectionWarning: ValidationError While inserting data
【发布时间】:2021-12-08 03:36:09
【问题描述】:

我正在关注关于构建电子商务网站的 MERN 教程。我遇到 UnhandledPromiseRejectionWarning: ValidationError 当我尝试使用邮递员将数据插入数据库时​​发生此错误,但我无法绕开它。

这是错误

(node:4864) UnhandledPromiseRejectionWarning: ValidationError: Product validation failed: category: 请输入产品类别, price: 请输入产品价格, description: 请输入产品描述, name: 请输入产品名称 在 model.Document.invalidate (D:\Project\ecommerce\node_modules\mongoose\lib\document.js:2907:32) 在 D:\Project\ecommerce\node_modules\mongoose\lib\document.js:2698:17 在 D:\Project\ecommerce\node_modules\mongoose\lib\schematype.js:1280:9 在 processTicksAndRejections (internal/process/task_queues.js:77:11)

这是数据库连接文件

const mongoose = require("mongoose");

const connectDatabase = () =>{
    
    mongoose.connect(process.env.DB_URI).then((data)=>{
            console.log(`Mongodb connected with server ${data.connection.host}`);
        }).catch((err)=>{
            console.log(err);
        })

}
module.exports = connectDatabase;

这是架构

const mongoose =  require("mongoose");

const productSchema = new mongoose.Schema({
    name:{
        type:String,
        required:[true, "Please enter product name"],
        trim:true,
    },
    description:{
        type:String,
        required:[true, "Please enter product description"],
    },
    price:{
        type:Number,
        required:[true, "Please enter product price"],
        maxLength:[7,"Price cannot exceed 7 characters"],
    },
    rating:{
        type:Number,
        default:0,
    },
    images:[
        {
            public_id:{
                type:String,
                required:true,
            },
            url:{
            
                type:String,
                required:true,
            }
        }
    ],
    category:{
        type:String,
        required:[true, "Please enter product category"],
    },
    stock:{
        type:Number,
        required:[true, "Please enter product Stock"],
        maxlength:[4, "Stock cannot exceed 4 characters"],
        default:1,
    },
    numberOfReviews:{
        type:Number,
        default:0,
    },
    
reviews:[
    {
        name:{
            type:String,
            required:true,
        },
        rating:{
            type:Number,
            required:true,
        },
        comment:{
            type:String,
            required:true,
        }
    }
],
    createdAt:{
        type:Date,
        default:Date.now,
    }
})

module.exports = mongoose.model("Product", productSchema);

这是我通过 POST 发送的 json 文件,邮递员一直在发送请求。

    "name":"product1",
    "price":12000,
    "description":"this is a sample product",
    "category":"Laptop",
    "images":{
        "public_id":"sample Image",
        "url":"sampleurl"
    }
    

【问题讨论】:

    标签: node.js json database mongodb mongoose


    【解决方案1】:

    您的数据不是 JSON 格式。在邮递员中发送数据如下:

    {
        "name":"product1",
        "price":12000,
        "description":"this is a sample product",
        "category":"Laptop",
        "images":{
            "public_id":"sample Image",
            "url":"sampleurl"
        }
    }
    

    【讨论】:

      猜你喜欢
      • 2022-12-02
      • 2018-11-05
      • 2019-12-18
      • 1970-01-01
      • 2021-08-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-07-16
      相关资源
      最近更新 更多