【问题标题】:Email validation using nodeJS/express/ and ajax使用 nodeJS/express/ 和 ajax 进行电子邮件验证
【发布时间】:2014-02-07 09:23:38
【问题描述】:

我正在开发一个网络应用程序,我正在尝试进行电子邮件/密码验证,以便在用户在电子邮件字段中输入内容后,他们会被告知他们的电子邮件是否正确。我正在使用 angular/express 和 jam,但似乎无法显示错误消息。我认为错误在于我的路由器之间的连接,但我不确定。

我有一个validation.js 文件:

 var email; 
 var password; 
 var INVALID_EMAIL = "The email you entered is invalid"

exports.validateEmail = function (userEmail) {

    email = userEmail
    var emailFilter = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;

    if (emailFilter.test(email)) {
    //alert('Please provide a valid email address');
        email.focus;
        return true;
    }
    else{
        return false
    }
}

我还有一个名为 navigation.js 的 javascript 文件,我在其中调用以发布消息:

$(document).ready(function() {

    var viewsWrapper = $("#views-wrapper");
    var loginButton = $("#login-button");
    var registerButton = $("#register-button");

    // Login Link
    // TODO: Unclear if needed
    $("ul li.login").click(function() {
        $.get('/login', function(data) {
            viewsWrapper.html(data);
        });
    });

$('#usernamefield').blur(function() {
    e.preventDefault(); 

    $.post('/login', INVALID_EMAIL, function(data) {
        $(".emailErrorMessage").html(data); 
    });
}

...更多代码但不相关 在这里,我正在进行 jQuery 发布调用,并尝试更改我的玉模板中的一段以用于登录屏幕。该段落有一个 emailErrorMessage 类

login.jade:

form(action="")
key EMAIL
    input(type="text", name="username", id="usernamefield")
p 
    span(class='emailErrorMessage') 
br
input(type="submit", name="loginButton", id="login-button", value="LOGIN")

最后在我的 app.js 中我打了个电话:

app.post('/validate/email', validation.validateEmail);

我是否正确地将这些东西连接在一起?我有一种感觉,我错过了一些东西,但我不能把手指放在它上面。我知道这是很多代码,但任何事情都有帮助。我正在努力做到这一点,以便一旦用户输入他们的电子邮件并离开 int 电子邮件输入框,如果他们的电子邮件不正确,他们会收到一条消息,说明电子邮件无效。我,不确定我是否正确使用了邮政电话。

【问题讨论】:

  • 验证电子邮件通常是不受欢迎的。如果有人仍然可以输入“random@random.com”,那又有什么意义呢? davidcel.is/blog/2012/09/06/…
  • 是的,但我希望用户在提交之前能够知道。

标签: jquery node.js validation express pug


【解决方案1】:

看来您应该尝试一下: https://github.com/ctavan/express-validator https://npmjs.org/package/express-validator

在你的 app.js 中:

var ev = require('express-validator');

并使用模块:

app.use(express.urlencoded());
app.use(ev());
// Order is important.

制作一个中间件并传递错误对象:

 function validator(req, res, next) {

    req.checkBody('email', 'Invalid Email').isEmail();
    req.checkBody('password', 'Invalid Password ! Mustbe Between 6-20 Charctersters').len(6, 20);

    var errors = req.validationErrors(true);
    if (errors) {
            res.render('register', { errors: errors});
        }
    } else {
        next();
    }
};

使用此中间件设置路由:

app.post('/register', validator, otherStuff);

在jade模板中,您可以循环访问错误对象并向客户端显示错误消息。

【讨论】:

    猜你喜欢
    • 2019-12-29
    • 2013-12-21
    • 1970-01-01
    • 1970-01-01
    • 2018-06-01
    • 2011-03-21
    • 2011-05-11
    • 2017-11-19
    • 2011-01-31
    相关资源
    最近更新 更多