NextJs - 页面中 API 文件夹中的函数给出“res.status 不是函数”错误
Posted
技术标签:
【中文标题】NextJs - 页面中 API 文件夹中的函数给出“res.status 不是函数”错误【英文标题】:NextJs - Function in API folder in pages gives 'res.status is not a function' error 【发布时间】:2021-10-05 19:53:00 【问题描述】:我正在使用 NextJs,我正在尝试创建一个将数据发送到 MailChimp 的订阅表单。但是,我收到错误提示
res.status 不是函数
这个文件在我的pages/api
目录中。可能出了什么问题?
import subscribe from "../../lib/api";
const request = require("request");
export default async function subscribeWithEmail(req, res)
const email, js = req.body;
const mcData =
members: [
email_address: email,
status: "pending",
,
],
;
const mcDataPost = JSON.stringify(mcData);
const options =
url: "https://us6.api.mailchimp.com/3.0/lists/SECRET",
method: "POST",
headers:
Authorization: "auth APIKEY",
,
body: mcDataPost,
;
if (email)
request(options, (err, res, body) =>
console.log(res);
if (err)
res.json( error: err );
else
if (js)
res.status(200).send( message: "yay" );
else
res.redirect("/");
);
else
res.status(404).send( message: "Failed" );
// res.status(200).json(data);
return res.status(200);
【问题讨论】:
你有多个res.status
调用,哪一行会抛出错误?
【参考方案1】:
您正在隐藏您的初始 res
变量。
// you have another res here, which has nothing to do with Next.js res, but it is overriding it
// So you need to rename it to something else, for example to "response"
request(options, (err, response, body) =>
console.log(response);
if (err)
res.json( error: err );
else
if (js)
res.status(200).send( message: "yay" );
else
res.redirect("/");
);
【讨论】:
以上是关于NextJs - 页面中 API 文件夹中的函数给出“res.status 不是函数”错误的主要内容,如果未能解决你的问题,请参考以下文章
NextJS getStaticProps 没有将返回的道具传递给页面
如何从 Nextjs 中的另一个页面将附加数据传递给 getserversideprops?