我一直在尝试为我的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只是一个带有配置对象的require(&#39; config&#39;)文件。
答案 0 :(得分:7)
问题是superCtor.prototype
是undefined
。 Object.create
唯一有效的第一个参数是null
或非null
对象引用;你不能使用原语(包括undefined
)。
我们无法说明为什么 superCtor.prototype
未在您引用的代码中定义,但这是Object.create
的问题调用
答案 1 :(得分:1)
我想出了这个问题。我有一个名为Error
的全局变量,它与redis以及其他一些依赖项冲突。
我通过简单地将Error
重新命名为Errors
来修复它。