node.js - 从其他文件访问所需的变量

时间:2012-11-24 14:25:47

标签: node.js

我有一个节点应用程序,它主要由两个文件组成,“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文件访问它。我该如何解决这个问题?

提前致谢。

1 个答案:

答案 0 :(得分: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客户端对象。