0

主に「app.js」メインファイルと「router.js」の 2 つのファイルで構成されるノードアプリケーションがあります。app.js ファイルでは、Redis クライアントなど、必要なすべてのファイルを要求しています。

私はまったくの初心者で、router.js で新しく作成された変数「client」に「アクセス」する方法を見つけようとしています。

//app.js file
var redis   = require("redis"),
    client  = redis.createClient(9981, "herring.redistogo.com");

app.get('/', routes.index);



//router.js file
exports.index = function(req, res){
 client.get("test", function(err, reply) {
   console.log(reply.toString());
 });
};

その router.js ファイルからアクセスできないため、明らかに「クライアントが定義されていません」と表示されます。これを修正するにはどうすればよいですか?

前もって感謝します。

4

1 に答える 1

1

Redis クライアント オブジェクトを、他のファイルと同じ独自のファイルに配置しますrequire

// client.js file
var redis = require("redis"),
    client = redis.createClient(9981, "herring.redistogo.com");
client.auth("mypassword");
module.exports = client;

//router.js file
var client = require("./client");
exports.index = function(req, res){
 client.get("test", function(err, reply) {
   console.log(reply.toString());
 });
};

ノード内の必要なモジュールは一度だけ読み込まれ、モジュールを必要とする各ファイルは同じオブジェクトを取得するため、それらはすべて単一の Redis クライアント オブジェクトを共有します。

于 2012-11-24T14:53:13.070 に答える