2

私は django のバックグラウンドを持っていますが、基本的に、このフレームワークでは多くのモジュール コードを使用できます。nodejs と Express で簡単なブログ エンジンを作成しました。ただし、 javascriptに準拠したnodejsアプリケーションにcoffeescriptを使用したため、すべてのルートがメインapp.jsファイル、またはむしろ.app.coffee

だから、これが私のルートがどのように見えるかを言ってください:

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 に答える