2
votes

when i console.log(response) then i get the result on the terminal,

but when i use res.status(200).json(response); i get this error on my nextjs project &

Not Found

on the Browser

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);
  }
});

Error code:

(node:62307) UnhandledPromiseRejectionWarning: TypeError: res.status is not a function ┃ at /home/mh/Documents/Shopiy/shopyy_mode/server/server.js:34:11 ┃
at processTicksAndRejections (internal/process/task_queues.js:93:5) ┃ (Use node --trace-warnings ... to show where the warning was created) ┃ (node:62307) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). To terminate the node process on unhandled promise rejection, use the CLI flag --unhandled-rejections=strict (see https://nodejs.org/api/cli.html#cli_unhandled_rejections_mode). (rejection id: 1) ┃ (node:62307) [DEP0018] DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code.

1
Seems like res does not have the status function. Are you using expressjs?user2258152
@user2258152 no, i am not using expressjsMHT
kk so what is the router object or where is it coming from ?user2258152
import Router from "koa-router"; const router = new Router();MHT
oh.. I'll create an answeruser2258152

1 Answers

2
votes

Koa router does not return (req, res) but a context instead
https://github.com/ZijianHe/koa-router#router-

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