我有一个节点应用程序,它主要由两个文件组成,“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文件访问它。我该如何解决这个问题?
提前致谢。
答案 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客户端对象。