Node.js: вернуть данные клиенту с чистым HTML - PullRequest
1 голос
/ 23 мая 2019

я хочу создать очень простой логин через 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 Ответ

2 голосов
/ 23 мая 2019

Я не понимаю чистую часть HTML.Вы имеете в виду без javascript / ajax или шаблонизатора на стороне сервера?

Я бы использовал EJS для этого, если бы мне пришлось использовать только пост-форму.В противном случае вы можете использовать ajax-запрос.

Проблема в том, что вы возвращаете HTML-результат клиенту.Вы должны вернуться, как указано ниже, если вы используете EJS;

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