redisの「return Promise.reject(new errors_1.ClientClosedError());」というエラーについて
結論(どうすればよいか)
"redis": "^4.1.0"
から
"redis": "^3.0.0"
にpackage.json
を変更しろ
なお、なぜかは知らん
# 掃除
docker compose -f docker-compose.yml -f docker-compose.dev.yml down
docker compose -f docker-compose.yml -f docker-compose.dev.yml up -d --build
エラー内容
return Promise.reject(new errors_1.ClientClosedError());
ソース
※もう直しているので再現はしません
github
https://github.com/2f0833e717/node-docker
実際のコンソール出力内容
[nodemon] restarting due to changes...
[nodemon] starting `node index.js`
Fri, 06 May 2022 02:29:38 GMT express-session deprecated undefined resave option; provide resave option at index.js:43:9
Fri, 06 May 2022 02:29:38 GMT express-session deprecated undefined saveUninitialized option; provide saveUninitialized option at index.js:43:9
listening on port 3000
succesfully connected to DB
/app/node_modules/@redis/client/dist/lib/client/index.js:404
return Promise.reject(new errors_1.ClientClosedError());
^
ClientClosedError: The client is closed
at Commander._RedisClient_sendCommand (/app/node_modules/@redis/client/dist/lib/client/index.js:404:31)
at Commander.commandsExecutor (/app/node_modules/@redis/client/dist/lib/client/index.js:167:154)
at Commander.BaseClass.<computed> [as set] (/app/node_modules/@redis/client/dist/lib/commander.js:8:29)
at RedisStore.set (/app/node_modules/connect-redis/lib/connect-redis.js:65:21)
at Session.save (/app/node_modules/express-session/session/session.js:72:25)
at Session.save (/app/node_modules/express-session/index.js:406:15)
at ServerResponse.end (/app/node_modules/express-session/index.js:335:21)
at ServerResponse.send (/app/node_modules/express/lib/response.js:232:10)
at ServerResponse.json (/app/node_modules/express/lib/response.js:278:15)
at exports.signUp (/app/controllers/authController.js:20:21)
[nodemon] app crashed - waiting for file changes before starting...
余談その1 写経の元ネタ
[Youtube] [Google自動翻訳]
Dockerを学ぶ-Node.jsとExpressを使用したDevOps
余談その2
// /home/ubuntu/work/study/node-docker/controllers/authController.js
exports.signUp = async (req, res) => { // reqとresを逆位置にする解決方法もあるみたいだが実際どうなのか、、ちなみに使えなかった
const { username, password } = req.body = {}; // default {}で落ちても復帰できるようにしていたが、逆にhttp statusが全部failになるのでやめました。
try {
const hashpassword = await bcrypt.hash(password, 12);
const newUser = await User.create({
username,
password: hashpassword,
});
res.status(201).json({
status: "success",
data: {
user: newUser,
},
});
} catch (e) {
res.status(400).json({
status: "fail",
});
}
};
エラー対応 参考:
今回は一発