Během studií dělám web. Vzhledem k tomu, že technologie je zdarma, rozhodl jsem se kódovat s nodejs/Express. Pro mou první cestu /home
, vše proběhlo v pořádku. Nemohu však vytvářet další.
Přesto jsem si myslel, že systému rozumím dobře. Vadilo by mi, kdyby to bylo kvůli hloupé chybě, protože se tímto problémem zabývám příliš dlouho ð.
index.js
:
const express = require('express'); const app = express(); app.set('view engine', 'ejs'); const PORT = process.env.PORT || 4242; app.use('/', require('./routes/home_route')); app.use('/auther', require('./routes/auther_route')); //the problem ð¡ app.listen(PORT, () => { console.log(`localhost:${PORT}`); }); app.use('/styles', express.static(__dirname + '/styles')); app.use('/scripts', express.static(__dirname + '/scripts')); app.use('/pictures', express.static(__dirname + '/pictures'));
home_route.js
:
const express = require('express'); const { homeView } = require('../controllers/home_controller'); const router = express.Router(); router.get('/home', homeView); router.get('/', (req, res) => res.redirect('./home')); module.exports = router;
home_controller.js
:
let page = 'home_view.ejs'; const homeView = (req, res) => { res.render("constant_view.ejs", { page : page }); } module.exports = { homeView };
constant_view.ejs
:
html... <%= page %> html...
A to vše je velmi dobré. A to je to, co nefunguje ð.
auther_route.js
:
const express = require('express'); const { autherView } = require('../controllers/auther_controller'); const router = express.Router(); router.get('/auther', autherView); module.exports = router;
auther_controller.js
:
let page = 'auter_view.ejs'; const autherView = (req, res) => { res.render("constant_view", { page : page }); } module.exports = { autherView };
Předem vám děkuji za váš čas a odpovědi.
Odpověď
pokoušíte se dostat na trasu /auther
v index.js, ale uvnitř auther_route
vytvoříte trasu s /auther
také. Takže v index.js byste měli přidat /auther/auther
nebo jednoduše změňte na app.use('/', require('./routes/auther_route'))
;
S pozdravem