好的,所以我目前只是想弄清楚如何在EJS中显示某些类型的消息。我现在正在使用它,它有效:
let sql = 'SELECT * FROM users WHERE username = ?';
db.query(sql, [username], function(err, rows) {
if (err)
return done(err);
if (!rows.length) {
return done(null, false, {
type: 'loginMessage',
message: 'Login',
});
}
// Match Password
bcrypt.compare(password, rows[0].password, function(err, isMatch) {
if (err)
return done(err);
if (isMatch) {
return done(null, rows[0]);
} else {
return done(null, false, {
type: 'loginMessage',
message: 'Wrong Login',
});
}
});
});
}));
这就是消息的来源。但是我遇到了一次只渲染1种类型的问题。
<%- messages('msg_temp', locals) %>
我是怎么做的,但这显示了每种类型。我想有两个,一个在登录之上,一个在寄存器上面,'loginMessage'
作为登录类型,'regMessage'
作为寄存器类型。
您是否想要查看我正在尝试做的事情,您可以转到https://playkog.net
如果您尝试注册,则会显示上述消息。 (等等)。
答案 0 :(得分:0)
好的,所以我想出了我的答案。我能够为我的消息添加一个类型。使用此代码:
bcrypt.compare(password, rows[0].password, function(err, isMatch) {
if (err)
return done(err);
if (isMatch) {
return done(null, rows[0]);
} else {
return done(null, false, {
type: 'loginMessage',
message: 'Wrong Pass',
});
}
但是,我仍然不确定如何在同一页面上的消息上调用特定类型。我的首页上有登录和注册表格。因此,我希望'LoginMessage'
在我的登录表单上方显示,并在注册表单上方显示'regMessage'
。我只是不知道如何在不同的代码行中显示这些类型,因为如果我使用两个messages()
函数我会收到错误