文件的nodejs强大的类型不一致

Posted

技术标签:

【中文标题】文件的nodejs强大的类型不一致【英文标题】:nodejs formidable typing is inconsistent for Files 【发布时间】:2021-12-25 22:23:31 【问题描述】:

使用强大来绕过nextjs不管理FormData的事实(在我的例子中是在上传文件时使用)

当调用根时,我正在解析主体如下。 Files.File 被输入为 "File | File[]" 虽然我在创建强大的实例时设置了 multiple=false。在我看来,它应该是File,因为multiple 选项设置为false。

但奇怪的是,在处理 files.file 对象时,它的类型是PersistentFile,而不是File。而且这两种类型都不兼容....

这里有什么问题?

运行“强大”:“^2.0.1”、“@types/formidable”:“^2.0.0”、“打字稿”:“4.4.4”

export const config = 
  api: 
    bodyParser: false,
  ,
;

const handler = async (
  req: NextApiRequest,
  res: NextApiResponse
): Promise<void> => 
  const form = formidable( multiples: false );
  form.parse(
    req,
    async (_, fields: formidable.Fields, files: formidable.Files) => 
      console.log(files.file); <--- shows PersistentFile type in the console (see screenshot #2)
      await bucketUpload(
        String(fields.bucketName),
        files.file,
        String(fields.fileName)
      );
    
  );

  res.status(200).json( text: "Hello" );
;

【问题讨论】:

【参考方案1】:

看看the changelog

我们有一个open issue about types

在 v3 中,文件总是一个数组,所以我猜你可能想使用它。

【讨论】:

ok 然后等待 V3。谢谢

以上是关于文件的nodejs强大的类型不一致的主要内容,如果未能解决你的问题,请参考以下文章

Eclipse 编译错误:“类名”类型的层次结构不一致

数据类型不一致: 应为 DATE, 但却获得 NUMBER

关于FileZilla上传文件后服务器端文件与本地文件大小不一致的解决方法

ORA-00932 数据类型不一致: 应为 -, 但却获得 -

数据库中字段类型和代码里面的类型不一致不出错?

sprintf转换类型和参数类型必须一致么