我正在尝试访问客户端中的 Nuxt 3 API 端点返回的错误消息。我能够在本地开发中访问错误消息,但是一旦在生产中运行,该消息就无法访问,只有状态代码可用。为什么无法访问错误消息?
此外,我可以看到该消息包含在响应中,但在错误对象中不可用。
// /server/api/example-api.ts
export default defineEventHandler(async (event) => {
throw createError({
statusCode: 400,
message: "Test message",
statusMessage: "Test message",
});
};
回应:
{
"url":"/api/example-api",
"statusCode":400,
"statusMessage":"Test message",
"message":"Test message",
"stack":""
}
// Client request
async (body: any) => {
try {
const response = await $fetch("/example-api", {
method: "POST",
body: body,
});
} catch (err) {
console.log(err.message, err.statusMessage, err.statusCode);
}
};
打印自
console.log
:
[POST] "/api/example-api": 400 <empty string> 400
如果相关,该站点已部署在 Netlify 中。
您可以从数据对象访问错误消息。这就是代码的样子,它应该可以解决您的问题
// Client request
async (body: any) => {
try {
const response = await $fetch("/example-api", {
method: "POST",
body: body,
});
} catch (err) {
console.log(err.data.message, err.data.statusMessage, err.data.statusCode);
}
};