You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Node.js项目登录验证失败时如何在前端p标签展示错误提示

实现方案

你现在的误区是后端Node.js代码无法直接操作前端页面的DOM元素,前后端是分离的请求响应模式,你需要通过服务端渲染传参的方式实现需求,步骤如下:

步骤1:修改后端路由逻辑

登录校验失败时,重新渲染登录页面,同时把错误提示作为参数传给模板引擎:

app.post('/account', (req, res) => { 
  const username = req.body.username;
  const password = req.body.password;
  con.query("USE discbin")
  con.query('SELECT * FROM accounts WHERE username = ?', [username], function (err, result, fields) {
    if (err) throw err;
      if (result.length > 0 && result[0].password === password) {
        console.log(result[0].username + " logged in!")
        res.render('account');
      }
      else {
        console.log("a user tried to login using the username: " + username)
        // 渲染登录页,传入错误提示参数,注意替换成你自己的登录页模板名
        res.render('login', { errorMsg: 'wrong username or password' })
      }
    });
  });

步骤2:修改前端登录页模板

在你现有的p标签位置,用模板引擎的语法判断是否有错误参数传入,有就渲染提示内容。以常用的EJS模板引擎为例,修改你的p标签代码:

<p id = "check"><%= errorMsg || '' %></p>

如果用的是其他模板引擎,对应语法调整即可,核心逻辑都是把后端传入的errorMsg参数填充到p标签内。

额外注意

你现在直接明文比对数据库存储的密码存在严重安全风险,建议后续使用bcrypt等加密库对密码做哈希存储和校验,不要明文存密码。

内容的提问来源于stack exchange,提问作者skep_sickomode

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.30 20:27:03