什么和为什么
我想要以下内容的一些背景知识。首先,我想创建一个网站和一个内容管理系统。我想在两个模块(网站和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'
});
}
}
]
}
无法获取/
我认为我在routes / website / index.js文件中做错了。当我去localhost:3000时,我收到以下消息'无法获取/'。
答案 0 :(得分:0)
我认为你必须将app传递给路由或返回路由表并将其加入app
routesWebsitePages.initialize(app);
或
app.use(routesWebsitePages.initialize());