使用Mongo Schema和i18n的多语言验证消息

时间:2017-03-25 16:05:28

标签: node.js mongodb express i18n-node

我是Node.js / Mongo的新手,我想知道如何在验证中使用i18n。到目前为止,这就是我所拥有的

模式

const UserSchema = new Schema({
    language: {
        type: String,
        enum: ['fr', 'en']
    },
    email: {
        type: String,
        default: ''
    }
});

验证

i18n.configure({
    locales:['en', 'fr'],
    directory:'locales',
    defaultLocale: this.language,
    cookie: 'locale'
});

UserSchema.path('email').validate(function (email) {
    return email.length;
}, i18n.__('Email_is_required'));

之前我添加了i18n的配置,所以我可以使用它,但我知道这不是正确的方法。我尝试使用 this.language ,但默认情况下它总是英文。

我想用我的表单中发送的语言配置i18n。有没有办法在模型中做到这一点?谢谢!

1 个答案:

答案 0 :(得分:0)

所以我能找到一个解决方法,到目前为止我的解决方案。我直接在现场使用id

const UserSchema = new Schema({
    email: {
        type: String,
        unique: 'Unique_email', // id error in en.json 
        trim: true,
        default: '',
        required: [true, 'Email_required']
    }
});

在我看来,使用帕格这是我为每个错误做的事情

ul
    each error in errors
        li!=  __(error) // the error return will be the key for this language