R. *_*tte 13 typeerror typescript next.js
我正在使用NextJS v11.1.1-canary.11,React v17.0.2和Typescript v4.3.5.
我想基于NextJS Typescript 文档创建一个简单的 API 端点,因此我在pages/proxy名为 的文件夹中创建了一个文件login.tsx,其中包含非常简单的 API 代码:
import type { NextApiRequest, NextApiResponse } from 'next'
export default function Login(req: NextApiRequest, res: NextApiResponse) {
res.status(200).json({ name: 'John Doe' })
}
Run Code Online (Sandbox Code Playgroud)
当我尝试调用该 API 端点时,出现错误:
TypeError: res.status is not a function
at Login (C:\wamp64\www\project-front\.next\server\pages\proxy\login.js:19:7)
Run Code Online (Sandbox Code Playgroud)
完整的堆栈跟踪在这里
我已经做了研究,但在 Google 或 Stackoverflow 上找不到像我这样的案例,我是 NextJS 的新手,所以我可能误解了一些东西。有人知道我做错了什么吗?
Ism*_*dni 14
你的例子效果很好。
您可以通过将文件login.ts放在pages/api/{whatever_you_want}
下一个文档:
文件夹 pages/api 内的任何文件都会映射到 /api/* 并将被视为 API 端点而不是页面。它们只是服务器端捆绑包,不会增加客户端捆绑包的大小。
小智 5
我遇到了同样的问题,就我而言,这是因为我将运行时配置为使用“experimental-edge”。
如果你评论它,它会起作用,这可能是金丝雀版本的一个错误
// in next.config.js
/** @type {import('next').NextConfig} */
const nextConfig = {
experimental: {
appDir: true,
transpilePackages: ["ui"],
// runtime: "experimental-edge",
},
};
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
13403 次 |
| 最近记录: |