使用自定义Flash消息并调用它们。 (的NodeJS)

时间:2017-12-16 22:23:26

标签: javascript php node.js html5 flash-message

好的,所以我目前只是想弄清楚如何在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

如果您尝试注册,则会显示上述消息。 (等等)。

1 个答案:

答案 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()函数我会收到错误