使用默认路由的Express.js路由
我有以下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);
它运作良好。 我没有在我的控制器中为'/'path设置path,而我的Express.js服务器默认情况下从'public'文件夹呈现'index.html' – 这是我想要的。 现在我想添加'*'路由,所以Express.js从'public'文件夹返回'index.html' – 这是静态文件,不需要渲染,只是返回。 我该怎么做? 谢谢
如果您希望自己的服务从根path提供public/index.html
,则可以简单地使用express.static
如下所示:
app.use(express.static('public'));
express.static会默认将index.html
作为索引文件,您可以在第二个参数中configuration它:
app.use(express.static('public', {index: 'myIndex.html'}))
还要注意的是,你不需要指定root来app.use
你的方式。 只需做到这一点:
app.use(router);
我甚至会build议你的route.controller()
方法是没有必要的。 如果你的每个控制器都导出了他们自己的express.Router()
你可以简单地在你的迭代器中执行app.use(myController)
。