我正在尝试从next/server使用NextResponse。当我调用API时,我得到一个状态500和内部服务器错误。条件。if (response.status === 202)
为true,可以进入if块。
export async function POST(request: NextRequest) {
let body = await request.json();
console.log(body);
if (process.env.URL_FILE_SERVICE_CREATE_CATEGORY) {
axios.post(process.env.URL_FILE_SERVICE_CREATE_CATEGORY)
.then(response => {
if (response.status === 202) {
return NextResponse.json({ hello: 'Next.js' })
}
})
.catch(err => {
if (err.response.status === 409) {
return NextResponse.json({ message: "conflict" }, { status: 409 });
} else {
return NextResponse.json({ message: "Error" }, { status: 500 });
}
});
}
}
1条答案
按热度按时间ippsafx71#
代码片段的问题是 www.example.com 。在返回响应之前要解决或拒绝的帖子。这可能会导致意外的行为,因为响应可能会在Promise被解析或拒绝之前发送。另一方面,下面的代码片段在axios之前包含一个return语句。post调用,确保函数在返回响应之前等待Promise被解析或拒绝。这是一个更好的实现,因为它保证只有在Promise被解析或拒绝时才发送响应。