我有一个NodeJS Express应用程序在一个文件(app.js)中变得非常大.
我想将所有路由导出到一个外部文件中,比如说./lib/routes.js.怎么做?
如何导出以下位代码并在主app.js中正确使用它?
app.get('/logout',function(req,res) { res.render('logout',{ username: req.session.username }); }); app.get('/dashboard',res) { res.render('dashboard',{ username: req.session.username }); }); app.get('/login',res) { res.render('login',{ badLogin: false,loginError: false }); });
解决方法
为什么不这样做:
// 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轻松遍历路径目录并以编程方式加载它们.
你甚至可以做一些……
module.exports.handler[] = { method : 'get',route : '/login',action : res.render('login',{ badLogin: false,loginError: false }); }
虽然我想我会花一点时间考虑如何简化它.