多部分表单数据文件上传时间错误正文应该是对象,我也在使用 ajv 插件,但我仍然在使用同样的问题。下面是我的参考代码。
应用程序.js
const fastify = require('fastify')({
logger: true
});
const Ajv = require('ajv');
const ajv = new Ajv({
useDefaults: true,
coerceTypes: true,
$data: true,
extendRefs: true
});
ajv.addKeyword("isFileType", {
compile: (schema, parent, it) => {
parent.type = "file";
delete parent.isFileType;
return () => true;
},
});
fastify.setSchemaCompiler((schema) => ajv.compile(schema));
路由.js
schema: {
tags: [{
name: 'Category'
}],
description: 'Post category data',
consumes: ['multipart/form-data'],
body: {
type: 'object',
isFileType: true,
properties: {
name: {
type: 'string'
},
thumb_url: {
isFileType: true,
type: 'object'
},
img_url: {
isFileType: true,
type: 'object'
},
status: {
type: 'number',
enum: [0, 1],
default: 1
}
},
required: ['name', 'thumb_url', 'img_url']
},
response: {
201: {
type: 'object',
properties: categoryProperties
}
}
}
回复
{
"statusCode": 400,
"error": "Bad Request",
"message": "body should be object"
}
我怀疑错误出在我发送数据的方式上,但我无法弄清楚。我已阅读有关此错误的信息,它似乎是在将对象传递给 formData 时生成的,但我正在发送一个字符串,所以我不明白它为什么会发生。提前致谢!