2

さまざまなルートを処理するために express.js を使用しているときに、すべてのルート コードを別のモジュールにカプセル化したいのですが、モジュール間で req オブジェクトと res オブジェクトにアクセスするにはどうすればよいですか? 以下のコードを参照してください。メイン ファイルの examples.js は次のように記述されています。

var app = require('express').createServer();
var login = require('./login.js');
app.get('/login', login.auth(app.req, app.res));
app.listen(80);

私が望むのは、ログイン処理コードが login.js と呼ばれる別のモジュール/ファイルに記述されることです。問題は、login.js で応答オブジェクトにどのようにアクセスできるかです。req と res の型が解決されていないため、次のコードは動作しないと思います。

exports.auth = function(req, res) {
    res.send('Testing');
}

したがって、ノードexample.jsでサーバーを起動すると、エラーが発生します

「undefined のメソッド send を呼び出せません」

Request オブジェクトと REsponse オブジェクトはモジュールに沿ってどのように渡されますか

4

2 に答える 2

5

これはうまくいくはずです:

app.get('/login', login.auth);

login.authあなたの例は、関数の戻り値をリクエストの get ハンドラーとして渡そうとしていました。上記は、代わりにlogin.auth関数自体をハンドラーとして渡します。

于 2011-04-18T12:02:55.870 に答える
0

TJ Holowaychuk は github ページで Express の素晴らしい例をいくつか作成しました。これはルート分離に関するものです。

https://github.com/visionmedia/express/tree/master/examples/route-separation

于 2011-04-26T15:22:07.160 に答える