You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.12 10:53:24