Express.js路由相关404错误排查:无法访问登录页面
Express登录页面404错误排查
核心错误点分析
链接路径后缀错误
index视图中的登录链接写为/login.html,但你的Express路由配置的是无后缀的/login路径,浏览器请求/login.html时找不到对应路由处理,直接触发404。路由前缀重复定义
登录路由文件中定义了router.get('/login', ...),同时app.js里设置了app.use('/login', loginRouter),这会让实际生效的路由路径变为/login/login,而你访问的/login没有对应处理逻辑,同样导致404。
修复方案
- 修正链接路径
修改index.pug中的登录链接,移除.html后缀:
extends layout block content h1= title p Welcome to #{title} a(href="/login") Login
- 调整路由定义
修改登录路由文件,将路由路径改为根路径,配合app.js中的前缀使用:
var express = require('express'); var router = express.Router(); // 移除前面的/login,依赖app.js中设置的/login前缀 router.get('/', function(req, res, next) { res.render('login'); }); module.exports = router;
额外优化建议
登录表单的action属性建议明确指定为 /login(对应后续需添加的POST路由),同时为输入框添加name属性方便后端接收参数:
extends layout block content form(action="/login" method="post") input(type="text" name="username") input(type="password" name="password") input(type="submit", value="Login")
内容的提问来源于stack exchange,提问作者Alexiy
相关产品推荐
相关产品推荐

