node.js – 如何在Express中导出所有路由?

我有一个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
    });
}

虽然我想我会花一点时间考虑如何简化它.

相关文章

这篇文章主要介绍“基于nodejs的ssh2怎么实现自动化部署”的...
本文小编为大家详细介绍“nodejs怎么实现目录不存在自动创建...
这篇“如何把nodejs数据传到前端”文章的知识点大部分人都不...
本文小编为大家详细介绍“nodejs如何实现定时删除文件”,内...
这篇文章主要讲解了“nodejs安装模块卡住不动怎么解决”,文...
今天小编给大家分享一下如何检测nodejs有没有安装成功的相关...