MongoRuntimeError:连接池已关闭

lut*_*dle 4 api mongodb node.js

我看到我的猫鼬池在插入数据之前似乎已关闭,因为在调用云集群中的猫鼬数据库时出现此错误

MongoRuntimeError: Connection pool closed
Run Code Online (Sandbox Code Playgroud)

但我正在等待所有的电话?所以我不确定为什么会看到这个问题,也许这与我定义客户的方式有关?希望有人对此有一些建议或想法

export const storeData = async (data) =>{
    const uri = `mongodb+srv://plantmaster:${password}@cluster0.yey8l.mongodb.net/plantstore?retryWrites=true&w=majority`;
    const client = await MongoClient.connect(uri, {
        useNewUrlParser: true,
        useUnifiedTopology: true,
        serverApi: ServerApiVersion.v1
      });

        const newPLantData = { name: "Company Inc", address: "Highway 37" };
        await client.db("plantstore").collection("plantdata").insertOne(newPLantData, (err, res) =>{
            if(err) throw err;
            console.log(result)
        })
       
        await client.close();
};
Run Code Online (Sandbox Code Playgroud)

我在特快专递路线上调用此函数,如下所示

// store data
app.post('/store', async function (req, res) {
 await storeData(req.body);
  res.send('data was stored')
})
Run Code Online (Sandbox Code Playgroud)

小智 8

我遇到了同样的错误,但我通过在关闭连接之前等待 1500 毫秒来修复它。

setTimeout(() => {client.close()}, 1500)
Run Code Online (Sandbox Code Playgroud)

  • 我猜你们俩都在某个地方错过了等待? (4认同)