I'm trying to create a web app with the MVC pattern and express in node.js. This is my project structure: 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;
The problem is that I can access the index page ("/") but not the login page ("/login") even when the code for both is almost identical.
Here's the code of indexController.js:
let express = require("express");
let router = express.Router();
router.get('/', (req, res) => {
res.render("index");
});
module.exports = router;
I don't really know what's happening, I'm kinda new to express and MVC and couldn't find anything online, please help :)
CodePudding user response:
You have 'login' twice. The first one is enough in app.use('/login', loginController);
Inside, you can remove the other
router.get('/', (req, res) => {
res.render("login");
});