【发布时间】:2014-11-11 13:37:57
【问题描述】:
我使用 Node.js。 我运行的服务器 js 脚本是这样的:
节点 chat_server.js
在终端 CentOS 中收到错误消息后:
Express 服务器在开发模式下监听未定义的端口。
+ 用户未定义连接的 node_redis: 没有回调发送错误: ERR 'sadd' 命令的参数数量错误
/home/who/public_html/node/node_modules/redis/index.js:582 抛出错误; ^ 错误:“sadd”命令的 ERR 参数数量错误 在回复解析器。 (/home/who/public_html/node/node_modules/redis/index.js:317:31) 在ReplyParser.emit (events.js:95:17) 在ReplyParser.send_error (/home/who/public_html/node/node_modules/redis/lib/parser/javascript.js:296:10) 在ReplyParser.execute (/home/who/public_html/node/node_modules/redis/lib/parser/javascript.js:181:22) 在 RedisClient.on_data (/home/who/public_html/node/node_modules/redis/index.js:547:27) 在套接字。 (/home/who/public_html/node/node_modules/redis/index.js:102:14) 在 Socket.emit (events.js:95:17) 在套接字。 (_stream_readable.js:748:14) 在 Socket.emit (events.js:92:17)
在 emitReadable_ (_stream_readable.js:410:10)
对不起,我不明白这些错误的原因。 关于我应该注意什么以及如何解决?
比如我使用命令redis SADD:redis_cli.sadd( "user.friend:" + currentIdUser, data.idUser);
我做了一个实验,创建了一个新的文本脚本:
var redis = require("redis");
var client = redis.createClient();
client.on("error", function (err) {
console.log("Error " + err);
});
client.sadd("users","naveen",function(err,reply){
console.log('Ok');
if(err)
throw err;
return reply;
});
它在控制台中给了我:好的。这意味着,一切正常。 我认为在我的代码中:
redis_cli.sadd("userslist", currentIdUser);
变量 currentUser 只是空的或未定义的。它给了我下一个错误。
【问题讨论】:
-
检查你的端口变量...
-
Redis 现在可用,通过客户端控制台:# redis_cli 端口是:6379 in /redis/index.js
default_port = 6379, default_host = "127.0.0.1"; -
redis和node版本? -
这是同样的问题:github.com/malditogeek/vmux/issues/20 Node Version v0.10.29, Redis Version v=2.8.12 sha=00000000:0 malloc =jemalloc-3.6.0 bits=64 build=630f2ccf4a71c8e5
-
所有版本都不旧。只能尝试更新 Redis。但不知道在 CentOS 上如何。我通过 NPM 安装了 redis:npm install redis 也许在这个问题中
标签: node.js redis node-redis