我想將我的簡單expressJs
應用程式與 Redis 容器連接起來。但它沒有與redis
容器連接。這里我使用了 redis:alpine 鏡像來構建容器。
kasun@Kasuns-MacBook-Air ~ % docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
redis alpine 9dcd83a87127 3 weeks ago 36.5MB
alpine latest 3fb3c9af89a9 7 weeks ago 5.32MB
kasun@Kasuns-MacBook-Air ~ %
我已經以這種方式運行了一個容器并限制了本地機器的埠 3307
kasun@Kasuns-MacBook-Air ~ % docker run -dt --name redis_cache -p3307:6379 9dcd83a87127
8f44169e8c73938845319463c83f63048c5051bcbbfca7809a1300446b415ae3
kasun@Kasuns-MacBook-Air ~ %
它顯示容器像這樣運行
kasun@Kasuns-MacBook-Air ~ % docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
8f44169e8c73 9dcd83a87127 "docker-entrypoint.s…" 56 seconds ago Up 55 seconds 0.0.0.0:3307->6379/tcp redis_cache
kasun@Kasuns-MacBook-Air ~ %
expressJs 代碼(server.js 檔案)
const express = require('express');
const app = express();
const redis = require('redis');
const redisClient = redis.createClient(3307, '0.0.0.0');
redisClient.on('connect', () => {
console.log("Redis connected");
})
redisClient.on('error', () => {
console.log("Error");
})
app.listen(8080, () => {
console.log('listening on port 8080');
})
但是當我啟動 express 應用程式時,它并沒有與 Redis 容器連接。
kasun@Kasuns-MacBook-Air test % npm run test
> test@1.0.0 test
> nodemon server.js
[nodemon] 2.0.16
[nodemon] to restart at any time, enter `rs`
[nodemon] watching path(s): *.*
[nodemon] watching extensions: js,mjs,json
[nodemon] starting `node server.js`
listening on port 8080
我怎么解決這個問題?
uj5u.com熱心網友回復:
這段代碼和我一起作業,你可以試試這個
const express = require('express');
const app = express();
const redis = require('redis');
const redisClient = redis.createClient({
url: 'redis://127.0.0.1:3307'
});
const redisConnect = async () => {
try {
await redisClient.connect()
console.log('Redis Connected');
} catch (error) {
console.log(error)
}
}
redisConnect()
app.listen(8080, () => {
console.log('listening on port 8080');
})
uj5u.com熱心網友回復:
將 0.0.0.0 更改為 localhost 或 127.0.0.1
試試這個方法
const redisClient = redis.createClient(3307, 'localhost');
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/481705.html
上一篇:使用ts-node-dev運行一個簡單的express應用程式并得到錯誤:錯誤運算式:傳遞給`ts.resolveTypeReferenceDirective`的非字串值