【发布时间】:2021-10-08 00:14:05
【问题描述】:
下面是我的 mongodb schema Product 有六个字段 - username、email、bio、 图像、哈希和salt:
var mongoose = require("mongoose");
var productSchema = new mongoose.Schema(
{
username: {
type: String,
lowercase: true,
required: [true, "can't be blank"],
index: true,
},
email: {
type: String,
lowercase: true,
required: [true, "can't be blank"],
index: true,
},
bio: String,
image: String,
hash: String,
salt: String,
},
{ timestamps: true }
);
module.exports = mongoose.model("Product", productSchema);
My Data/Product.js Info,数据库中存储的数据:
[
{
username: "USERNAME",
email: "name.username@gmail.com",
bio: "BIOSample",
image: "Image",
hash: "sample",
salt: "sample",
},
];
我的控制器代码:
const Product = require("../models/product");
//create new product => /api/v1/product/new
exports.newProduct = async (req, res, next) => {
const product = await Product.create(req.body);
res.status(201).json({
success: true,
product,
});
};
在 npm run 时,我收到如下错误消息:
Product validation failed: email: can't be blank, username: can't be blank.
【问题讨论】:
-
执行 console.log(req.body) 会发生什么?
-
如果是这样,就不要写
required: [true, "can't be blank"]。你只需要写required: true。如果你有进一步的验证,你可以在前端进行,否则,在 nodejs 中为 email 和 username 编写一个验证函数
标签: javascript reactjs mongodb visual-studio-code