日期:2014-05-16  浏览次数:20416 次

[Node.js] 学习笔记 - express 3中的 app.use(app.router)
在学习一些express相关项目时,github project source中的example常常还是以
express 3.X为基础来举例的, 而其中的
app.use(app.router)有点没头没尾,让人有点困惑。

Express 4

Express 4.0 removes app.router. All middleware (app.use) and routes (app.get et al) are now processed in precisely the order in which they are added.

引用

    All routing methods will be added in the order in which they appear. You should not do app.use(app.router). This eliminates the most common issue with Express.

    In other words, mixing app.use() and app[VERB]() will work exactly in the order in which they are called.

    app.get('/', home);
    app.use('/public', require('st')(process.cwd()));
    app.get('/users', users.list);
    app.post('/users', users.create);

Express 2 and 3
Note that if you don't explicitly use the router, it is implicitly added by Express at the point you define a route (which is why your routes still worked even though you commented out app.use(app.router)).





详见:
http://stackoverflow.com/questions/12695591/node-js-express-js-how-does-app-router-work