我正在try 连接我的在线Redis数据库.

const redis = require('redis');

const client = redis.createClient({
  password: '<password>',
  socket: {
      host: <host>
      port: <port>
  }
});

client.on('connect', function() {
  console.log('client connected');
});

client.on('error', function(err) {
  console.error('Error connecting to server: ', err); 
});

client.set('mykey', 'myvalue', function(err, result) { 
  if (err) {
    console.error('Error setting value - : ', err);
  } else {
    console.log('Value set - ', result);
  }
});

但是,在try 执行代码时,会出现"未处理的运行时错误:错误:客户端已关闭"的错误.我注意到,有些人建议在客户机上调用"Connect"方法;然而,这会导致错误消息"client.Connect"或"net.Connect"is not a Function.我正在寻求如何解决这个问题的指导.

为了连接到我的Redis数据库,我使用NPM包管理器安装了以下依赖项:redis、ioredis、redis-om和node-redis.

我还将值、和替换为redis给我的值.

推荐答案

这是Node Redis 3.x的做事方式.Node Redis 4.x使用promise 而不是回调.下面是README个榜单中排名靠前的connect example个榜单,它们向你展示了首选的方法:

import { createClient } from 'redis';

const client = createClient();

client.on('error', err => console.log('Redis Client Error', err));

await client.connect();

await client.set('key', 'value');
const value = await client.get('key');
await client.disconnect();

请注意,对于您try 执行的操作,您应该只需要redis包.它也是Redis的官方Node.js客户端.我编写了redis-om,它使用了redis包,如果您使用它,我会很高兴,但对于您正在try 做的事情,它并不是必需的.

Node.js相关问答推荐

序列化事务未按预期工作

Gmail API获取附件PDF未正确呈现.我遗漏了什么?

MongooseError[MissingSchemaError]:尚未为模型注册架构

为什么我的 Node.js 应用程序在登录时无法正确验证密码(使用 Passport-local 和 bcryptjs)?

运行 cypress 测试时如何指定 .env 文件用于我的开发服务器?

我如何保护nodejs中的路由

suppress AWS SDK v2 弃用消息

为什么 $or 在带有正则表达式的mongoose 中不能正常工作

在新创建的 Angular 工作区上运行 ng lint 时出错

带权限的机密 Rest-Api - 总是 403 - 我做错了什么?

如何使用 mocha.js 模拟用于单元测试的依赖类?

如何使用 Mocha 测试正常(非 node 特定)JavaScript 函数?

为什么 JavaScript 的 parseInt(0.0000005) 打印5?

mongoose 模式中的嵌套对象

使用 Node.JS,如何按时间顺序获取文件列表?

JSHint 是否支持异步/等待?

如何可靠地散列 JavaScript 对象?

将变量传递给nodemailer中的html模板

node 应用程序是否有任何独立的 gui 模块

从 zip 文件在 AWS 中创建 lambda 函数