Node.JS对象的原型可能只是一个Object或Redis的null

我一直在试图为我的Node.JS API设置redis,并且我得到这个错误:

util.js:634 ctor.prototype = Object.create(superCtor.prototype, { ^ TypeError: Object prototype may only be an Object or null: undefined at Function.create (native) at Object.exports.inherits (util.js:634:27) at Object.<anonymous> (/home/<user>/<project>/node_modules/redis/lib/parser/javascript.js:31:6) at Module._compile (module.js:460:26) at Object.Module._extensions..js (module.js:478:10) at Module.load (module.js:355:32) at Function.Module._load (module.js:310:12) at Module.require (module.js:365:17) at require (module.js:384:17) at Object.<anonymous> (/home/<user>/<project>/node_modules/redis/index.js:33:14) 

这是我的代码:

 console.log('Redis: ' + config.redis.host); console.log('Redis: ' + config.redis.port); console.log('Redis: ' + config.redis.pass); redis = require('redis'); redisClient = redis.createClient( config.redis.port, config.redis.host, { auth_pass: config.redis.pass } ); 

config只是一个带有configuration对象的require('config')文件。

问题是superCtor.prototypeundefinedObject.create唯一有效的第一个参数是null或非null对象引用; 你不能使用原语(包括undefined )。

我们不能说为什么 superCtor.prototype是从您引用的代码中未定义的,但这是Object.create调用的问题。

我想出了这个问题。 我有一个名为Error的全局variables与redis冲突,还有一些其他的依赖。

我通过简单地将Error重命名为Error来修复它。