javascript - node.js中连接redis失败
问题描述
我正在尝试redis
使用express(node.js)
. 这是我index.ts
试图连接的文件redis
import mongoose from 'mongoose'
import express from 'express'
import session from 'express-session'
import connectRedis from 'connect-redis'
import Redis from 'ioredis'
import { MONGO_URI, MONGO_OPTIONS, REDIS_OPTIONS, APP_PORT } from './config'
import { createApp } from './app';
; (async () => {
await mongoose.connect(MONGO_URI, MONGO_OPTIONS)
const RedistStore = connectRedis(session)
const client = new Redis(REDIS_OPTIONS)
const store = new RedistStore({ client })
const app = createApp(store)
app.listen(APP_PORT, () => console.log('server running on port 3000'))
})()
这是我的REDIS_OPTIONS
文件,其中有所有redis
选项。
import { RedisOptions } from 'ioredis'
const {
REDIS_PORT = 6379,
REDIS_HOST = 'localhost',
REDIS_PASSWORD = 'secret'
} = process.env
export const REDIS_OPTIONS: RedisOptions = {
port: +REDIS_PORT,
host: REDIS_HOST,
password: REDIS_PASSWORD
}
docker-compose.yml
version: '3'
services:
db:
user: $UID
image: mongo
ports:
- '27017:27017'
environment:
MONGO_INITDB_ROOT: ''
MONGO_INITDB_PASSWORD: ''
MONGO_INITDB_DATABASE: auth,
MONGO_USERNAME: ''
MONGO_PASSWORD: ''
volumes:
- ./data:/data/db
- ./mongo-init.sh:/docker-entrypoint-initdb.d/mongo-init.sh:ro
cache:
image: redis:alpine
ports:
- '6379:6379'
command: ['--requirepass "secret"']
package.json
{
"name": "node-auth",
"version": "1.0.0",
"description": "",
"main": "index.js",
"scripts": {
"up": "docker-compose up -d",
"postup": "npm run dev",
"stop": "docker-compose stop",
"down": "docker-compose down",
"dev": "npm run dev --prefix api"
},
"keywords": [],
"author": "",
"license": "ISC"
}
现在,当我尝试运行我的主应用程序文件时,我收到了这个错误
[ioredis] Unhandled error event: Error: connect ECONNREFUSED 127.0.0.1:6379 at TCPConnectWrap.afterConnect [as oncomplete] (net.js:1106:14) node.js
我怎样才能摆脱这个错误?
解决方案
看起来这可能是 Redis 容器的问题。你用什么命令来运行容器?尝试-p 6379:6379
使用 docker 命令添加。另外,检查端口 6379 是否被其他东西使用或被杀毒软件或防火墙阻止。
推荐阅读
- d3-graphviz - D3 GraphViz HTML 字符串未正确呈现
- snowflake-cloud-data-platform - SQL获取在两列上具有最大值的行
- reactjs - 无法正确键入以下接受自定义属性键的 HOC 函数
- react-native-android - 测试命令失败并引发错误,如 ERROR: DetoxRuntimeError: Failed to run application on the device
- python - 如何找到与创建实例相关的 AST 分配节点?
- java - 执行使用 jpackage 制作的 .exe 时出现“无法启动 JVM”错误是什么意思?
- visual-studio-code - SSH 不会 bash 进入配置文件,因此没有权限 mkdir 用于 vscode 远程 ssh
- php - 我正在尝试将表单提交发送到我的电子邮件
- react-native - 如何在 React Native 应用程序中使用tipsi-stripe createSourceWithParams 创建一次性源
- android - 为什么 binding.myTextView 返回一个 TextView?而不是 TextView