首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >节点JS、Redis和Heroku

节点JS、Redis和Heroku
EN

Stack Overflow用户
提问于 2018-03-24 11:58:47
回答 1查看 70关注 0票数 0

我已经在我的应用程序npm install redis中安装了redis模块。在本地,我可以连接到这个好的地方,然后像这样写信给redis。

代码语言:javascript
复制
var redis = require('redis');
if(process.env.NODE_ENV == 'production') {
  var r_client = redis.createClient(process.env.REDISCLOUD_URL);
} else {
  var r_client = redis.createClient();
}

function writeToRedis(tweet, screen_name){
  return new Promise((resolve, reject) => {
    r_client.hset(screen_name, 'tweet_id', tweet['id'], 'tweet_text', tweet['text'], 'avatar', tweet['user']['profile_image_url'], 'screen_name', tweet['user']['screen_name'], function (error, result) {
      if (error) {
        reject(error);
        return;
      }
      resolve(result);
    });
  });
}

但是,当我部署到Heroku并尝试写到redis (我已经安装了addon Redis Cloud)时,我会得到以下错误

代码语言:javascript
复制
(node:4) UnhandledPromiseRejectionWarning: Unhandled promise rejection (rejection id: 1): ReplyError: ERR wrong number of arguments for 'hset' command

除了Redis之外,我是否还应该使用另一个注释,或者我做错了什么?我很困惑,因为它在当地工作。

谢谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-03-24 12:18:53

redis中的Hset函数一次只允许一个键值对。

代码语言:javascript
复制
client.hset("hash key", "hashtest 1", "some value", callback);
client.hset(["hash key", "hashtest 2", "some other value"], callback);

使用hmset代替

代码语言:javascript
复制
client.hmset(["key", "test keys 1", "test val 1", "test keys 2", "test val 2"], function (err, res) {});
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49464420

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档