如何导出Express中的所有路线? [英] How to export all routes in Express?
问题描述
我有一个NodeJS Express应用程序,它在一个文件(app.js)中变得非常大.
I have an NodeJS Express app that is getting really big in just one file (app.js).
我想将所有路由导出到单个外部文件中,例如./lib/routes.js
.怎么做?
I want to export all my routes into a single, external file, say ./lib/routes.js
. How to do that?
如何导出以下代码并在主app.js
中正确要求它?
How to export the following bit of code and require it correctly in main app.js
?
app.get('/logout', function(req, res) {
res.render('logout', {
username: req.session.username
});
});
app.get('/dashboard', function(req, res) {
res.render('dashboard', {
username: req.session.username
});
});
app.get('/login', function(req, res) {
res.render('login', {
badLogin: false,
loginError: false
});
});
推荐答案
为什么不做这样的事情:
Why not do something like this:
// logout.js
module.exports = function(req, res){
res.render('logout', {
username: req.session.username
});
});
// dashboard.js
module.exports = function(req, res){
res.render('dashboard', {
username: req.session.username
});
});
// login.js
module.exports = function(req, res){
res.render('login', {
badLogin: false,
loginError: false
});
});
// app.js
app.get('/logout', require('logout'));
app.get('/dashboard', require('dashboard'));
app.get('/login', require('login'));
此外,您可以想象使用 http://nodejs.org/docs/v0.4.8/api/fs.html#fs.readdir 循环遍历 routes 目录并以编程方式加载它们.
Also, you could imagine easily using http://nodejs.org/docs/v0.4.8/api/fs.html#fs.readdir to loop through a routes directory and load these up programmatically.
您甚至可以按照...的方式做一些事情.
You could even do something along the lines of...
module.exports.handler[] = {
method : 'get',
route : '/login',
action : res.render('login', {
badLogin: false,
loginError: false
});
}
尽管我认为我会花点时间考虑如何简化它.
Though I think I'd spend a little time thinking about how to simplify that.
这篇关于如何导出Express中的所有路线?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!