2

我来自 django 背景,基本上,该框架允许大量模块化代码。我在 nodejs 和 express 中创建了一个简单的博客引擎。但是,所有路由最终都在我的主app.js文件中,或者更确切地说app.coffee,因为我在我的 nodejs 应用程序中使用了咖啡脚本,它符合 javascript。

所以,说这就是我的路线的样子:

app.get('/', index.index)
app.get('/users', user.list)
app.get('/blog', blog.blogList)
app.get('/blog/:id(\\d{5})', blog.blogEntry)

现在,这里的问题是,如果我想按类别对它们进行排序,那么就会发生这种情况,那么我必须app.get在同一个文件中添加另一个函数。代码:

app.get('/blog/categores/:cat(\w+), blog.someotherview)

如果我想根据时间添加排序,例如:

app.get('/blog/time/:year(\\d{4}), blog.someYearView)

例如,我想做的是委托所有有关/blog要处理的事情blog.js。理想情况下,如何从主app.js文件中获取所有这些路由?

include()您可以通过使用django中的方法轻松地做到这一点。

4

1 回答 1

2

Create an Express app in your app.js file, as you are used to. Then, do the same in the blog.js file. Import and use it within app.js as follows:

var blog = require('./blog');

var app = express();
app.use(blog);

Inside your blog.js file, all you need to do is to export your app:

var app = express();
app.get('/blog/...', ...);

module.exports = app;

To put it in other words: Any Express app can be used as middleware for any other Express app, hence you can create sub-apps.

Hope this helps.

PS: TJ Holowaychuk (the creator of Express) created a video on this, Modular web applications with Node.js and Express.

于 2013-08-18T12:54:12.307 回答