【发布时间】:2020-12-19 11:29:08
【问题描述】:
大家好,我正在为我的项目使用 MERN 堆栈,我正在做的任务是使用 mongoose 将数据添加到我的数据库中,但首先我需要使用 mongoose 模式对其进行验证,所以我所做的是
schema.js
const mongoose = require("mongoose");
const Schema = mongoose.Schema;
const deliverySchema = new Schema({
name: {
type: String,
required: true,
},
email: {
type: String,
required: true,
},
});
const Agent= mongoose.model("delivery_agent", deliverySchema);
module.exports=Agent
controller.js
const Agent=require("../../../models/deliveryAgent")
exports.addDeliveryAgent = async (req, res, next) => {
let data=req.body.data
console.log(data)
const db = getdb();
const user = new Agent({
name: data.agent_name,
});
console.log(user, "user");
db.collection("delivery_agent")
.insertOne({ user })
.then((result) => {
console.log("Delivery agent saved !");
})
.catch((err) => {
console.log(err);
});
res.json({ status: 200, message: "Delivery Agent added" });
};
console.log(data) 上的安慰给了我
{
agent_name: '',
agent_email: '',
}
因为我发送的是空值
console.log(user) 创建模型后给我
{ _id: 5f4cd2a2b0de8d0e7a6da675, name: '' } user
但是为什么它被保存在我的数据库中,因为我正在用我的猫鼬验证它,并且在那里我通过添加“required:true”使它们成为强制性的。
如果我在这里遗漏了什么,请原谅我......
【问题讨论】:
标签: node.js mongodb express mongoose