Cześć.
Mam aplikacje która łączy się z bazą danych mongo.
Mogłaby działać bez tego połączenia (w przypadku błędu) ale nie potrafię nad tym zapanować.
async function run() {
try {
// Connect the client to the server (optional starting in v4.7)
await client.connect();
// Send a ping to confirm a successful connection
await client.db("admin").command({ ping: 1 });
await client.db('database').collection('someCollection').createIndex({ word: 1 })
console.log("Pinged your deployment. You successfully connected to MongoDB!");
} catch {
console.log('Something went wront while connecting to database')
} finally {
// Ensures that the client will close when you finish/error
await client.close();
}
}
run()
async function getInfoFromDatabase(input) {
await client.connect();
const response = await client.db('database').collection('someCollection').findOne({ input });
await client.close();
return response;
}
...
server.use((error, req, res, next) => {
res.send('<h1>Error happend</h1><p>' + error + '</p>')
})
Zapytanie getInfoFromDatabase czeka długo a później klient dostaje generyczną odpowiedź "Error happend".
Chciałbym żeby przy oczekiwaniu na odpowiedź z bazy dłuższym niż 3 sekundy klient dostawał już jakąś odpowiedź
W jaki sposób mogę sprawić żeby brak połączenia z bazą nie blokował aplikacji?