如何导出Express中的所有路线? [英] How to export all routes in Express?

查看:111
本文介绍了如何导出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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆