节点Mongodb的BSONTypeError(服务器错误)

vbopmzt1  于 2023-01-30  发布在  Go
关注(0)|答案(1)|浏览(90)

当我尝试从mongodb获取服务器中的一个文档时,出现了"参数必须是12字节的字符串或24个十六进制字符的字符串或整数"的错误。我该如何修复这个错误?Thanks advaced.
下面是我的代码

async function run() {
    try {
        await client.connect();
        const fruitsCollection = client.db("fruits").collection("fruitsCollection");

        // multiple get api
        app.get('/fruits', async (req, res) => {
            const query = {};
            const cursor = fruitsCollection.find(query);
            const fruits = await cursor.toArray();
            res.send(fruits)
        });

        //  ******* my problem is here ****
        // single get api
        app.get('/fruits/:id', async (req, res) => {
            const id = req.params.id;
            const query = { _id: ObjectId(id) };
            const fruit = await cursor.toArray(query);
            res.send(fruit);
        });

    }

    finally {

    }
}

run().catch(console.dir);


app.get('/', (req, res) => {
    res.send('Hello World!')
});

app.listen(port, () => {
    console.log(`Example app listening on port ${port}`)
});
qfe3c7zg

qfe3c7zg1#

尝试使用catch语句:

try {
    // do stuff
    res.json(data)
} catch (error) {
    console.error(error.message)
    res.status(500).send('Server Error')
}

它不会修复错误,因为错误是由你给它的objectID太短引起的。但是,它是很好的错误处理,并会阻止程序崩溃。

相关问题