无法获取“/”表示以外的路由

Cannot GET routes other than "/" express

我正在尝试使用 MVC 模式创建一个 Web 应用程序并在 node.js 中表达。这是我的项目结构: project structure image

app.js:

let express = require("express");
let hbs = require("hbs");
let app = express();

let indexController = require("./controllers/indexController");
let loginController = require("./controllers/loginController");

app.set("view engine", "hbs");

app.use('/login', loginController);
app.use('/', indexController);

app.listen(3000);

loginController.js:

let express = require("express");
let router = express.Router();

router.get('/login', (req, res) => {
    res.render("login");
});

module.exports = router;

问题是我可以访问索引页面(“/”)但不能访问登录页面(“/login”),即使两者的代码几乎相同。

这是indexController.js的代码:

let express = require("express");
let router = express.Router();

router.get('/', (req, res) => {
    res.render("index");
});

module.exports = router;

我真的不知道发生了什么,我对 express 和 MVC 有点陌生,在网上找不到任何东西,请帮忙 :)

您有两次'login'。第一个在app.use('/login', loginController);里面就够了,可以去掉另一个

router.get('/', (req, res) => {
    res.render("login");
});