0

我有一个主要由两个文件组成的节点应用程序,“app.js”主文件和“router.js”。在 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());
 });
};

node 中所需的模块仅加载一次,并且需要该模块的每个文件都获取相同的对象,因此它们都共享单个 Redis 客户端对象。

于 2012-11-24T14:53:13.070 回答