将错误消息发送到Node.js中的EJS文件 [英] Send error msg to ejs file in nodejs
问题描述
我有一个注册表,当用户名存在或电子邮件存在时,我需要发送错误消息:
i have a register form and i need to send the error message when username exist or email exist:
nodejs代码:
app.post('/register', function(req, res) {
var entity = _.pick(req.body, 'password', 'fullName', 'email', 'userName', 'phone', 'companyName', 'companyWebsite');
// hash password
entity.password = bcrypt.hashSync(entity.password, config.SALT_WORK_FACTOR);
async.waterfall([
function(cb) {
if(entity.userName) {
userService.findByUsername(entity.userName, function(err, user) {
if(err) {
cb(err);
} else if(user) {
cb(new errors.ValidationError('Cannot create user, userName already exists', httpStatus.BAD_REQUEST));
} else {
cb();
}
});
} else {
cb();
}
},
function(cb) {
if(entity.email) {
userService.findByEmail(entity.email, function(err, user) {
if(err) {
cb(err);
} else if(user) {
cb(new errors.ValidationError('Cannot create user, email already exists', httpStatus.BAD_REQUEST));
} else {
cb();
}
});
} else {
cb();
}
},
function(cb) {
crud.create(entity, cb);
},
], function(err, createdEntity) {
data = {
statusCode: httpStatus.CREATED,
content: createdEntity
};
if(err)
{
res.render('register', {user : undefined, success :true,successs :true});
}
else{
res.render('login', {user : undefined, success :true});
}
});
});
我的ejs文件代码为:
me ejs file code is :
<div class="alert">
<span class="closebtn" onclick="this.parentElement.style.display='none';">×</span>
<strong>oops!</strong>Cannot create user, username already exists
</div>
<div class="alert">
<span class="closebtn" onclick="this.parentElement.style.display='none';">×</span>
<strong>oops!</strong>Cannot create user, email already exists
</div>
如何将消息错误传递或发送到ejs文件..消息错误显示在 if(user):cb(new errors.ValidationError('无法创建用户,userName已经存在','httpStatus.BAD_REQUEST));
how can i pass or send the message error to ejs file ..the message error show in nodejs code under if(user):cb(new errors.ValidationError('Cannot create user, userName already exists', httpStatus.BAD_REQUEST));
推荐答案
您可以使用
<%=%>
例如:<%= user%>将打印用户.
for example: <%=user%> will print user.
存在错误对象时,将其作为第三个对象发送到ejs文件并以相同的方式读取它.
When err object exsists send it as third object to the ejs file and read it in the same way.
if(err){
res.render('register', {user : undefined, success :true,successs :true,error: err});
}
和在视图中
<%if(typeof error == "undefined"){%>
//Show some HTML here
<% } else { %>
//Show other html when you send error obejct sent
<%= error.message%> //For Example
<%}%>
这篇关于将错误消息发送到Node.js中的EJS文件的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!