Node.js:使用纯HTML将数据返回给客户端

时间:2019-05-23 12:55:12

标签: node.js authentication server

我想通过node.js创建一个非常简单的登录名

我现在的问题是,如果用户输入了错误的密码,我想在html上添加一个新标签,写上“用户名或密码错误” 仅使用纯html如何实现?

我现在要获得的只是将我重定向到显示“缺少用户名或密码”的/ login,但是我想保留在登录页面上。

另一点是,我想保持服务器端重定向。客户端重定向似乎是不好的做法。

app.post('/login', function (req, res) {
  database.query("SELECT EXISTS ( SELECT * FROM Users WHERE username = '" + req.body.username + "' AND password = '" + req.body.password + "')", function(err, data) {
    if(err) {
      console.log(err);
    }
    else{
      if(Object.values(data[0])[0] != 1) {
        res.status(400).send('Missing username or password'); // send this msg to html
      }
      else{
        res.redirect("main.html");
      }
      res.end();
    }
  });
});
app.listen(3001);

1 个答案:

答案 0 :(得分:2)

我不了解纯HTML部分。您是说在服务器端没有javascript / ajax或模板引擎吗?

如果仅需使用form-post,我将为此使用EJS。否则,您可以使用ajax请求。

问题是您正在将html结果返回给客户端。如果您使用EJS,则必须返回以下内容;

return res.render('login.html', {errMsg:'Missing username or password'});