LoginSignup
1
0

More than 1 year has passed since last update.

redisでreturn Promise.reject(new errors_1.ClientClosedError());というエラー対応

Last updated at Posted at 2022-05-06

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",
    });
  }
};

エラー対応 参考:

今回は一発

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0