Что и почемуКак я могу разделять маршруты в разных модулях и инициализировать одной строкой кода?
Немного предыстории, почему я хочу следующее. Прежде всего, я хочу создать веб-сайт и систему управления контентом. Я хочу отделить свои маршруты в двух модулях (веб-сайт и CMS), потому что я нахожу его более чистым кодом и более удобным для обслуживания в будущем. В моем файле app.js/server.js я хочу инициализировать эти маршруты одной строкой кода: 'routeWebsitePages.initialize()'.
Я сделал следующее:
server.js
var express = require('express');
var nunjucks = require('nunjucks');
var routesWebsitePages = require('./routes/website/pages.js');
var app = express();
app.use(express.static('./assets'));
app.use(express.static('./node_modules/material-design-lite'));
nunjucks.configure('views', {
autoescape: true,
express: app
});
routesWebsitePages.initialize();
app.listen(3000);
маршруты/сайт/index.js
var express = require('express');
module.exports = {
router: express.Router()
}
маршруты/сайт/pages.js
var modules = require('./index.js');
module.exports = {
initialize: function() {
this.routes.forEach((item) => {
modules.router.route(item.path).get(item.action);
});
},
routes: [
{
path: '/',
action: function (req, res, next) {
res.render('index.html', {
// Data to send to index.html
'helloWorld': 'Hello World'
});
}
}
]
}
не может получить/
Я думаю, что я сделал что-то неправильно в маршрутах/сайт/index.js файл. Когда я перехожу на localhost: 3000, я получаю следующее сообщение «Can not GET /».