首页 > 解决方案 > 如何从我的 Node.JS 向我的 Javascript 客户端发送一个警报?

问题描述

我正在使用 mysql 从我的 node.js 进行基本登录。

在我的代码示例中,如果会话正确,则将我发送到一个名为“home”的 html 页面,但对于这种情况,我需要在您进行会话后,我的 Javascript 客户端会发送一个警报,说明您已登录,或者如果它用户不正确。如果正确,请将“正确”一词保存在一个变量中,以便以后在我的 javascript 文件中使用

我如何发送该执行,以便我的 javascript 文件发送警报?

app.post('/auth', function(request, response) {
var username = request.body.username;
var password = request.body.password;
if (username && password) {
    connection.query('SELECT * FROM accounts WHERE username = ? AND password = ?', 
        [username, password], function(error, results, fields) {
        if (results.length > 0) {
            request.session.loggedin = true;
            request.session.username = username;
            response.redirect('/home'); //Here I want to change the instruction so that my javascript file sends an alert and create a varible that I can use in my file Javascript
        } else {
            console.log('Incorrect Username and/or Password!');
        }           
        response.end();
    });
 });

谢谢

标签: javascriptnode.js

解决方案


这是一个你可以使用的肮脏技巧,但它会重新渲染 ejs 视图:

在服务器端(使用快递):

app.get('/route', function (req, res) {
    res.render('view', { errormessage: 'your message' });
});

在客户端(使用 ejs 模板):

1.在您的ejs模板上创建一个不可见的div,以访问服务器发送的您的ejs变量:

HTML:

  <div id='status' class='invisible'><%= errormessage %></div>

CSS:

.invisible {
display: none;
visibility: hidden;
   }

2.在ejs末尾添加这个js脚本(jquery)来访问这个变量并创建一个警报:

<script>
      if($('div#status').text()!='')
      {
                alert($('div#status').text());
      }
</script>

推荐阅读