4

私はこのようなコードに出くわしました

express = require('express');
app = express();
app.use(require('./lib/file.js'));
app.listen(80);

file.js を含む

express = require('express');
app = module.exports = express();
app.get('/blah', function(a,b){});
app.post('/blah', function(a,b){});
//And so on..

app = module.exports = express()誰かがラインがどのように機能するか説明できますか?

4

2 に答える 2

1
app = module.exports = express()

次のように書くこともできます:

app = express()
app.get('/blah', function(a,b){});
app.post('/blah', function(a,b){});
module.exports = app

そのため、モジュールのエクスポートを高速アプリケーション (接続アプリケーション)のインスタンスに設定します。

興味深い部分は、app.use(require('./lib/file.js'));基本的にエクスポートされたアプリケーションを接続ミドルウェアとして設定する です。接続アプリは実際にはミドルウェアとして使用できる機能であるため、これが可能です。それらを作成するコードを見ると、それがはっきりとわかります。

function createServer() {
    //the magic happens in the next line:
    function app(req, res, next){ app.handle(req, res, next); } 
    utils.merge(app, proto);
    utils.merge(app, EventEmitter.prototype);
    app.route = '/';
    app.stack = [];
    for (var i = 0; i < arguments.length; ++i) {
        app.use(arguments[i]);
    }
    return app;
};

基本的には、ルートを別のファイル (この場合はfile.js) に入れる方法の 1 つです。

于 2013-08-09T16:35:46.823 に答える