javascript - 使用 mongoose 中间件验证密码是否错误?

标签 javascript node.js mongodb express mongoose

所以现在我正在使用验证器包进行电子邮件验证

const validator = require('validator');

email: {
    type: String,
    required: [true, 'User must have a email'],
    unique: true,
    lowercase: true, //transform to lowercase
    validate: [validator.isEmail, 'Please provide a valid email']
  }

所以我通过堆栈溢出发现了这个函数:

var validateEmail = function(email) {
    var re = /^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/;
    return re.test(email)
};

var EmailSchema = new Schema({
    email: {
        type: String,
        trim: true,
        lowercase: true,
        unique: true,
        required: 'Email address is required',
        validate: [validateEmail, 'Please fill a valid email address'],
        match: [/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/, 'Please fill a valid email address']
    }
});

所以我想知道,我该如何使用它或使用类似的东西作为 Mongoose 中间件运行?并且,将其用作中间件有意义吗?

示例:

userSchema.pre('save'....)

最佳答案

基本上,我认为使用架构验证更有意义,并且更容易维护

使用中间件进行验证:

我之前已经尝试过,但我不得不说很难做到正确。如果您将中间件定义为 pre.('save', ...) (这是正确使用的),正如您所提到的,在某些情况下您会尝试更新根据文档,中间件不会被执行,您必须在单独的任务中处理这些情况,这些任务很难维护,并且您无法确定它们是否有效或者您没有错过任何情况。 More on this topic

关于javascript - 使用 mongoose 中间件验证密码是否错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59725630/

相关文章:

c++ - 移动拷贝和/或分配 mongodb cxx 游标

javascript - JQuery 图像 slider 中的自动增量图像

Javascript 创建对 native 函数的引用

mongodb - 使用 mongo 查询按 id 更新数组元素

python - 如何在MongoDB中查找特定键:value 2 from python pymongo,

javascript - 导入文件需要时间,代码失败后出现

javascript - Angularjs 在新的弹出窗口中显示 pdf/图像文件

javascript - 获取选择标签中的列表项

node.js - 在 node.js 中监听 channel redis

mysql - 使用异步等待插入每个