Next.js 的 API 路由
2021-01-28 12:00:00

所有的 API 路由都在 /pages/api 文件夹下,并被映射到 /api

最简单的例子

例如,我们在 /pages/api 目录下,创建 name.js 文件,内容如下:

1
2
3
4
export default (req, res) => {
res.statusCode = 200;
res.json({ name: 'John Doe' });
}

这串代码先设定 HTTP 的 Status Code 为 200,再返回 JSON 信息。

如果程序没有错误,现在访问 /api/name,你可以看到如下的响应:

1
{"name": "John Doe"}

返回其他格式的信息

我们只能返回 JSON 格式的信息吗?肯定不是。

我们可以利用 res.send 向页面返回 stringobjectBuffer

1
2
3
export default (req, res) => {
res.status(200).send("John Doe")
}

上面这串代码在设定 Status Code 为 200 的同时还返回了文字。

响应如下:

1
John Doe

重定向

res.redirect 可以快速的跳转至另外一个 URL 地址。

1
2
3
export default (req, res) => {
res.redirect("http://example.org")
}

上面的代码会跳转至 http://example.org,状态码为 307(临时跳转)。

你也可以自定义返回的状态码:

1
2
3
export default (req, res) => {
res.redirect(301, "http://example.org")
}

上面的代码也会跳转至 http://example.org,但状态码为 301(永久跳转)。