我正在开发一个网络应用程序,我正在尝试进行电子邮件/密码验证,以便用户在电子邮件字段中输入内容后,他们会被告知他们的电子邮件是否正确。我正在使用angular / express和jade,但我似乎无法显示错误消息。我认为错误是我的路由器之间的连接,但我不确定。
我有一个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 post调用,并尝试更改我的jade模板中的一个段落用于登录屏幕。该段落有一类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电子邮件输入框,他们会收到一条消息,如果他们的电子邮件不正确,则说明无效的电子邮件。我不确定我是否正确使用了帖子。
答案 0 :(得分:2)
看起来你应该试试: 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模板中,您可以遍历错误对象并向客户端显示错误消息。