在项目中放置电子邮件验证器的位置?

时间:2016-03-13 15:10:09

标签: node.js mongoose

我在学习节点和Java Script的第2天。我一直在关注基本教程,并决定尝试在我的代码中实现简单的电子邮件验证。

问题是我不知道在哪里放置代码 - 我有一个server.js文件,它包含所有的CRUD操作和一个确保输入正确数据的Mongoose模型。有没有人对使用此模块验证用户输入的电子邮件的最佳方法有任何建议?

 //Email-validation npm module
 var validator = require("email-validator");

 validator.validate("test@email.com");


 //Mongoose model
 var mongoose = require('mongoose');
 var Schema = mongoose.Schema;

 var Tickets = new Schema({

   name: {
     type: String,
     required: true
   },
   email: {
     type: String,
     required: true
   },
   address: {
     type: String,
     required: true
   },
   price: {
     type: Number,
     required: true,
     min: 1,
     max: 100
   }

 });

 module.exports = mongoose.model('Ticket', TicketSchema);

1 个答案:

答案 0 :(得分:2)

在保存对象之前验证电子邮件。代码看起来像这样:

Tickets.pre('save', function (next) {
var ticket = this;
if (!ticket.isModified('email')) {
    next();
} else {
    var valid = validator.validate(ticket.email);
    if(valid) {
        next();
    } else {
        next(valid);
    }        
}
});