【问题标题】:UnhandledPromiseRejectionWarning: TypeError: res.status is not a function (NEXT JS)UnhandledPromiseRejectionWarning: TypeError: res.status is not a function (NEXT JS)
【发布时间】:2026-01-05 18:40:01
【问题描述】:

当我 console.log(response) 然后我在终端上得到结果,

但是当我使用 res.status(200).json(response);我在我的 nextjs 项目中遇到此错误&

找不到

在浏览器上

router.get("/api/backendData", async (req, res, next) => {
  dbConnect();
  try {
    Shop.find().then((response) => {
      res.status(200).json(response);
      response;
      console.log("responseess", response);
    });
  } catch (e) {
    console.log("Error From API Endpoint", e);
  }
});

错误代码:

(node:62307) UnhandledPromiseRejectionWarning: TypeError: res.status 不是函数 ┃ 在 /home/mh/Documents/Shopiy/shopyy_mode/server/server.js:34:11 ┃
在 processTicksAndRejections (internal/process/task_queues.js:93:5) ┃ (使用node --trace-warnings ... 显示警告的位置 创建)┃(节点:62307)UnhandledPromiseRejectionWarning:未处理 承诺拒绝。此错误源于抛出内部 一个没有 catch 块的异步函数,或者通过拒绝一个承诺 .catch() 没有处理。终止节点进程 未处理的承诺拒绝,使用 CLI 标志 --unhandled-rejections=strict(见 https://nodejs.org/api/cli.html#cli_unhandled_rejections_mode)。 (拒绝 id:1)┃(节点:62307)[DEP0018] 弃用警告: 未处理的承诺拒绝已被弃用。未来,承诺 未处理的拒绝将终止 Node.js 进程 带有非零退出代码。

【问题讨论】:

  • 好像 res 没有状态功能。你在用 expressjs 吗?
  • @user2258152 不,我没有使用 expressjs
  • kk 那么路由器对象是什么或者它来自哪里?
  • 从“koa-router”导入路由器;常量路由器 = 新路由器();

标签: javascript node.js next.js


【解决方案1】:

Koa 路由器不返回 (req, res) 而是返回一个上下文
https://github.com/ZijianHe/koa-router#router-

router.get('/', (ctx, next) => {
  ctx.res.statusCode = 200
  ctx.body = 'your json data'
})

【讨论】:

    最近更新 更多