我对Heroku/Redis还不熟悉。我创建了一个基本的node.js和express应用程序,并添加了一个REDIS插件。
heroku addons:create heroku-redis:hobby-dev -a MyApp
我有一个index.js
文件,从中服务器在5000端口上运行。
const express = require('express')
const path = require('path')
const PORT = process.env.PORT || 5000
const client = require('redis').createClient(process.env.REDIS_URL);
express()
.use(express.static(path.join(__dirname, 'public')))
.set('views', path.join(__dirname, 'views'))
.set('view engine', 'ejs')
.get('/', (req, res) => res.render('pages/index'))
.listen(PORT, () => console.log(`Listening on ${ PORT }`))
我的代码库已经连接到了我在Heroku上运行的个人GitHub账户,应用程序运行良好。但是当我尝试在本地运行它时,似乎它试图连接到本地的REDIS,因此当我运行node命令(node index.js)时出现以下错误:
Listening on 5000
events.js:183
throw er; // Unhandled 'error' event
^
Error: Redis connection to 127.0.0.1:6379 failed - connect ECONNREFUSED 127.0.0.1:6379
我非常新手,但我认为环境不对:
process.env.REDIS_URL
,我该如何直接连接到Heroku云而不是我的本地云?谢谢。
heroku local [WARN] Cannot read property '1' of null [OKAY] package.json file found - trying 'npm start' [OKAY] Loaded ENV .env File as KEY=VALUE Format [WARN] Cannot read property '1' of null [OKAY] package.json file found - trying 'npm start'
- HGBnode index.js
,它不起作用,所以我认为我每次都需要运行heroku local
。 - HGBheroku local
而不是node ...
,它会将.env
文件中的变量注入到节点的process
中。 - andrii