TypeScript'导出分配不能用于具有其他导出元素的模块'
我的目标是为所有的redis操作提供一个redis.js文件,就像下面的代码片断一样
const Redis = require('./handler/redis.js'); Redis.set(); Redis.get() etc .. from my app.js require('./core/redis')(redisClient);
上面的代码运行没有任何错误但是我得到typescript错误为'一个导出分配不能用在一个模块与其他导出的元素'
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需要('./ core / redis')。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); };
这是做到这一点的正确方法
你已经写了module.exports = function(redisClient) {
作为从这个模块exports
赋值语句,然后用module.exports.set
, module.exports.get
和module.exports.del
覆盖这个语句这就是为什么它是给出错误“导出分配不能用在具有其他导出元素的模块中” 。 我不知道从哪里得到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); };