使用npm的file-type包从Buffer提取mime类型时能否使用解构赋值?
你写的这种解构赋值写法是完全可行的。
await FileType.fromBuffer(buffer) 会先等待异步方法执行完成,拿到返回的对象结构(也就是你之前打印出来的{ ext: 'dcm', mime: 'application/dicom' }这类结构),解构赋值操作就是直接从这个异步返回的结果里提取对应属性,和你先把返回值赋值给mimeType变量、再单独取mimeType.ext、mimeType.mime的写法逻辑完全等价,运行结果没有任何区别。
需要额外注意的是,如果方法无法识别传入Buffer对应的文件类型,会返回undefined,此时直接解构会抛出语法错误,建议加上兜底处理,比如给解构加上默认空对象作为 fallback:
// 加默认空对象避免识别失败时解构报错 const { ext, mime } = await FileType.fromBuffer(buffer) ?? {}; if (ext && mime) { // 文件类型识别成功后的业务逻辑 console.log(ext); console.log(mime); } else { // 识别失败的兜底逻辑 console.log('未识别到有效文件类型'); }
内容的提问来源于stack exchange,提问作者tugs
相关产品推荐
相关产品推荐

