我有以下Express.js代码:
router = express.Router()
fs.readdirSync('./controllers').forEach(function (file) {
if(file.substr(-3) == '.js') {
route = require('./controllers/' + file);
route.controller(router);
}
});
app.use('/', router);
效果很好。我没有在我的控制器中为'/'路径设置路径,我的Express.js服务器默认从'public'文件夹中呈现'index.html' - 这就是我想要的。现在我想添加'*'路由,所以Express.js从'public'文件夹返回'index.html' - 它是静态文件,不需要渲染,只需返回。我该怎么做?感谢
答案 0 :(得分:2)
如果您希望自己的服务从根路径提供public/index.html
,则可以像这样使用express.static
:
app.use(express.static('public'));
express.static默认将index.html
视为您的索引文件,您可以在第二个参数中配置它:
app.use(express.static('public', {index: 'myIndex.html'}))
另请注意,您不必按照自己的方式指定根app.use
。只需这样做:
app.use(router);
我甚至建议不要使用route.controller()
方法。如果您的每个控制器都导出了自己的express.Router()
,那么您只需在迭代器中执行app.use(myController)
。