getNewsById接口返回空数组?请求技术排查帮助
问题求助:getNewsById接口返回空数组排查
我开发了新闻模块的后端路由、模型与控制器,其中全量GET、PUT、PATCH、DELETE方法均正常,但调用getNewsById接口时,Postman返回空数组。MongoDB中已创建newsflashes集合,且houses、users等其他集合的getById接口均可正常工作。我已花费三天排查此问题仍未解决,恳请技术帮助。
相关代码
Models/News.js
import mongoose from "mongoose"; const NewsFlashSchema = new mongoose.Schema( { title: { type: String, required: true, }, month: { type: String, required: true, }, year: { type: Number, required: true, }, description: { type: String, }, documentUrl: { type: String, }, }, { timestamps: true } ); const NewsFlash = mongoose.model("NewsFlash", NewsFlashSchema); export default NewsFlash;
Routes/management.js
import express from "express"; import { getNewsByMonth, getNewsById, updateNews, deleteNews, saveNews, saveNewsById, getNews, } from "../controllers/management.js"; const router = express.Router(); router.get("/newsflashes", getNews); router.get("/newsflashes/:month", getNewsByMonth); router.get("/newsflashes/:id", getNewsById); router.post("/newsflashes", saveNews); router.post("/newsflashes/:id", saveNewsById); router.patch("/newsflashes/:id", updateNews); router.delete("/newsflashes/:id", deleteNews); export default router;
Controllers/management.js
import NewsFlash from "../models/News.js"; // get all newsflashes export const getNews = async (req, res) => { try { const newsflashes = await NewsFlash.find(); res.status(200).json(newsflashes); } catch (error) { res.status(404).json({ message: error.message }); } }; // get newsflashes by id export const getNewsById = async (req, res) => { try { const newsflashes = await NewsFlash.findById(req.params.id); res.json(newsflashes); } catch (error) { res.status(404).json({ message: error.message }); } }; // get newsflashes by month export const getNewsByMonth = async (req, res) => { const month = req.params.month; try { const newsflashes = await NewsFlash.find({ month }); res.status(200).json(newsflashes); } catch (err) { res.status(500).json({ message: "Failed to retrieve newsflashes" }); } }; // add newsflashes export const saveNews = async (req, res) => { const newsflashes = new NewsFlash(req.body); try { const insertedNews = await newsflashes.save(); res.status(201).json(insertedNews); } catch (error) { res.status(400).json({ message: error.message }); } }; // add newsflashes by id export const saveNewsById = async (req, res) => { const newsflashes = new NewsFlash(req.body); try { const insertedNews = await newsflashes.save(); res.status(201).json(insertedNews); } catch (error) { res.status(400).json({ message: error.message }); } }; //update newsflashes export const updateNews = async (req, res) => { try { const updatedNews = await NewsFlash.updateOne( { _id: req.params.id }, { $set: req.body } ); res.status(200).json(updatedNews); } catch (error) { res.status(400).json({ message: error.message }); } }; //delete newsflashes export const deleteNews = async (req, res) => { try { const deletedNews = await NewsFlash.deleteOne({ _id: req.params.id }); res.status(200).json(deletedNews); } catch (error) { res.status(400).json({ message: error.message }); } };
数据库集合截图

内容的提问来源于stack exchange,提问作者Dona Wisidagama
相关产品推荐
相关产品推荐

