Home > Mobile >  NextJS API route error "TypeError: res.status is not a function"
NextJS API route error "TypeError: res.status is not a function"

Time:06-06

I created a simple api endpoint named getFeed which is supposed to get feed content from Sanity CMS. But unexpectedly the endpoint is throwing an error "res.status is not a function". I know there is a similar question asked here , but in my case the api endpoint file is stored in the supposed pages/api directory. Here is the code snippet below.

import { NextApiResponse } from 'next'
import { client } from '../../lib/sanity/sanity'

export default async function getFeed(res: NextApiResponse) {
  try {
    const feeds = await client.fetch(
      `*[_type == "post"]
      {
        _createdAt,
        title,
        description,
        picture,
        postDocId,
        postedByUserId,
        postedByUserName,
        postedByUserImage
      }`
    )
    return res.status(200).json({ feeds })
  } catch (error) {
    return res.status(500).json({ message: "Couldn't get post feed:\n", error })
  }
}

Here is my folder structure

What am I doing wrong??

CodePudding user response:

Try to specify also the req parameter and add a type to the response:

import { NextApiRequest, NextApiResponse } from 'next'

interface Data {
    message?: string;
    feeds?: <type-of-feeds>[];
}

export default async function getFeed(req: NextApiRequest, res: NextApiResponse<Data>) { ... } 
  • Related