From a03cdc6d350192a5ef960de3b5bc037b691cb8c0 Mon Sep 17 00:00:00 2001 From: chornos13 Date: Tue, 20 Sep 2022 04:26:24 +0700 Subject: [PATCH] docs(examples): fix error connection handling (#40633) When there's an error while connect to mongodb (timeout for example), it will be cached and need to restart next.js, by handling the error correctly (clear cached promise) it will try to reconnect to mongodb if the function is called again ## Bug - [ ] Related issues linked using `fixes #number` - [ ] Integration tests added - [ ] Errors have a helpful link attached, see `contributing.md` ## Feature - [ ] Implements an existing feature request or RFC. Make sure the feature request has been accepted for implementation before opening a PR. - [ ] Related issues linked using `fixes #number` - [ ] Integration tests added - [ ] Documentation added - [ ] Telemetry added. In case of a feature if it's used or not. - [ ] Errors have a helpful link attached, see `contributing.md` ## Documentation / Examples - [ ] Make sure the linting passes by running `pnpm lint` - [ ] The "examples guidelines" are followed from [our contributing doc](https://github.com/vercel/next.js/blob/canary/contributing/examples/adding-examples.md) Co-authored-by: JJ Kasper <22380829+ijjk@users.noreply.github.com> --- examples/with-mongodb-mongoose/lib/dbConnect.js | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/examples/with-mongodb-mongoose/lib/dbConnect.js b/examples/with-mongodb-mongoose/lib/dbConnect.js index 698a02e5c46e..f8bca3635137 100644 --- a/examples/with-mongodb-mongoose/lib/dbConnect.js +++ b/examples/with-mongodb-mongoose/lib/dbConnect.js @@ -33,7 +33,14 @@ async function dbConnect() { return mongoose }) } - cached.conn = await cached.promise + + try { + cached.conn = await cached.promise + } catch (e) { + cached.promise = null + throw e + } + return cached.conn }