我的目标是从我的所有代码中获取所有redis操作的单个redis.js文件,就像下面的代码片段一样
const Redis = require('./handler/redis.js');
Redis.set();
Redis.get() etc ..
from my app.js
require('./core/redis')(redisClient);
以上代码运行时没有任何错误但我得到的打字稿错误为'导出作业不能用于包含其他导出元素的模块'
module.exports = function(redisClient) {
redisClient.on('error',function(err) {
console.log('Redis Error ' + err);
});
redisClient.on('connected',function() {
console.log('Redis Connected');
});
module.exports.set = function(key, value, next) {
redisClient.set(key,value,next);
};
module.exports.get = function(key, next) {
redisClient.get(key,next);
};
module.exports.del = function(key, next) {
redisClient.del(key,next);
};
};
即使有这个警告我的代码是如何运行的
编辑代码: //来自我的app.js. 要求(' ./芯/ redis的&#39)。INIT(redisClient);
module.exports.init = function(redisClient) {
redisClient = redisClient;
}
redisClient.on('error',function(err) {
console.log('Redis Error ' + err);
});
redisClient.on('connected',function() {
console.log('Redis Connected');
});
module.exports.set = function(key, value, next) {
redisClient.set(key,value,next);
};
module.exports.get = function(key, next) {
redisClient.get(key,next);
};
module.exports.del = function(key, next) {
redisClient.del(key,next);
};
这是正确的方法吗
答案 0 :(得分:1)
您已在此模块中为module.exports = function(redisClient) {
编写了exports
作为转让声明,之后您使用module.exports.set
,module.exports.get
和module.exports.del
覆盖此声明#39;为什么会出错?'导出作业无法在包含其他导出元素的模块中使用' 。我不知道你从哪里获得函数的redisClient
参数。如果这在当前模块中已经可用,那么您只需将代码编写为
redisClient.on('error',function(err) {
console.log('Redis Error ' + err);
});
redisClient.on('connected',function() {
console.log('Redis Connected');
});
module.exports.set = function(key, value, next) {
redisClient.set(key,value,next);
};
module.exports.get = function(key, next) {
redisClient.get(key,next);
};
module.exports.del = function(key, next) {
redisClient.del(key,next);
};