错误处理承诺将唯一数据保存在mongoDB中(ValidationError)

时间:2018-07-09 12:33:59

标签: javascript mongodb mongoose promise koa

我使用Koa.js,mongodb和momgoose.js

我在客户端有一个简单的表单,并且我有一些唯一且必填的输入。 提交表单时,我会尝试将所有数据保存到mongodb中。

const mySchema = mongoose.Schema(
    {
        firstname: {
            type: String,
            unique: true,
            required: true
        },
        lastname: {
            type: String,
            required: true
        }
    });
const My = mongoose.model('My', mySchema);

保存功能

function addDB(data) {
    return new Promise(() => {
        const bar = new My({ ...data });
        bar.save().then(() => console.log('success'));
    });

如何在这样的数据库中捕获错误:

UnhandledPromiseRejectionWarning: ValidationError: My validation failed: lastname: Path `lastname` is required.

1 个答案:

答案 0 :(得分:1)

您可以使用catch处理该错误,以避免出现此错误:

function addDB(data) {
    return new Promise(() => {
        const bar = new My({ ...data });
        bar.save().then(() => console.log('success')).catch(err=>console.log(err))
    });