项目中引入的 npm 包:Request
遇到的问题:
在进行文件上传时,通过 body 传入 ReadStream 流来上传文件到服务器,发现总是会将 header 头部中的文件类型 Content-type 设为 false。项目里完全没对 Content-Type 做任何处理,那究竟是在哪里设置的 false。
原因:
在使用 Request 请求时,这个请求包会在发请求的时候在监听 pipe 流中对未设置 content-type 头部的文件检测一遍文件类型,这个里面使用的检测方法 mime.lookup 做的处理是如果检测不出来就默认设为false。
问题代码的位置: request/request.js
解决方案:
项目中引入 mime-types 包,在文件上传请求发送前提前对文件的 Content-Type 进行设置,以此来避免 Request 自动设置 false 的问题。