使用Mongoose在创建对象之前验证对象数组

zbwhf8kr  于 2023-08-06  发布在  Go
关注(0)|答案(1)|浏览(96)

我有一个后端与Node-Mongoose。我有一个模式“客户”与一些领域(如名称和头像)。我有一个创建新客户的功能。一切正常。现在我需要创建许多客户,我通过发送一个对象数组作为req.body而不是一个单独的对象来实现这一点。
我能够做到这一点,但如果任何对象有一个验证错误(没有有效的电子邮件或名称),它不会存储在数据库中。然而,那些没问题的,确实被储存起来了。
问题是:在创建任何文档之前,我需要验证整个对象数组。如果任何对象无效,则不应创建任何对象。
我一直在寻找,但我什么也找不到。有什么帮助吗?
我原来的功能很简单:

exports.createCustomer = catchAsync(async (req, res, next) => {
const newCustomer = await Customer.create(req.body)
if (!newCustomer) return next(new AppError('The customer could not be created', 404))

res.status(201).json({
    status: 'success',
    data: {
        newCustomer
    }
})

字符串
})

pokxtpni

pokxtpni1#

我写了一个例子来解决你的问题,假设要验证电子邮件地址的长度是正确的。

//schema

const customerSchema = new mongoose.Schema({
    email: {
    type: String,
    required: [true, 'email must input'],
    minlength: [5, 'min length'],
    maxlength: [50, 'max length'],
  },
});

个字符

相关问题