gpt4 book ai didi

node.js - Mongoose findById 在未找到结果时不会返回 null

转载 作者:行者123 更新时间:2023-12-04 10:24:31 29 4
gpt4 key购买 nike

当我提供 none existing id 时,if 语句应该返回 404 错误,但它没有。插入它发送 500 错误

const express = require("express");
require("./db/mongoose");
const User = require("./models/user");


const app = express();
const port = process.env.PORT || 3000;

app.use(express.json());


app.get("/users/:id", (req, res) => {
const _id = req.params.id;

User.findById(_id)
.then(user => {
if (!user) {
return res.status(404).send();
}

res.send(user);
})
.catch(e => {
res.status(500).send();
});
});

app.listen(port, () => {
console.log("Server is up on port " + port);
});

最佳答案

在查询之前尝试检查有效的 ObjectId,

const mongoose = require("mongoose")

app.get("/users/:id", (req, res) => {
const _id = req.params.id;
const isValidId = mongoose.Types.ObjectId.isValid(_id)

if (!isValidId) return res.status(400).send("id is not valid")

... //continue your code here

})

关于node.js - Mongoose findById 在未找到结果时不会返回 null,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60681986/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com