我正在为Next.js应用开发一个小型REST API。如果我把我的route.ts
放在rootDir -> app -> API -> hello -> route.ts中,看起来像这样,那么它就可以工作了:
//route.ts
export async function GET(request: Request) {
return new Response('Hello, Next.js!')
}
字符串
我可以通过Postman向localhost:3000/API/hello发出一个成功的GET请求。
我现在将代码更改为以下内容:
import { NextApiRequest, NextApiResponse } from "next";
export async function GET(request: NextApiRequest, response: NextApiResponse) {
return response.json({ message: "Hello, Next.js!" });
}
型
现在它失败了,我得到错误消息:
error TypeError: response.json is not a function
型
问题已知,但升级到最新的lts或最新的node版本并不能解决我的问题:https://github.com/vercel/next.js/issues/48524的数据。
1条答案
按热度按时间2w2cym1i1#
虽然您的尝试将在Next.js的
pages
目录中工作,但设置路由的初始方式,对于较新的app
文件夹,您需要使用next/server
中的NextResponse
对象,正如您在doc上所读到的那样:字符串