【解决问题方法论】缩小范围
摘要: 在一个工程中,程序中某个功能运行与预期结果不一样。导致这个问题的发生有很多因素,有时候很难定位是哪些因素导致这个问题的发生 。所以我们需要不断缩小范围,最终找出问题所在
问题描述
在Node服务器上调用接口压缩文件,压缩包下载下来是损坏状态,但在服务器上是正常的
排查问题
-
先看看压缩包本身是不是正常。我们打开服务器上的压缩包,发现是正常,也就是调用接口->客户机过程的问题
-
看压缩文件与返回文件的三行代码
ctx.response.set('Content-Disposition','attachment;filename=log.zip')
设置http头部,它会**浏览器文件下载对话框,它的文件名框自动填充了filename。所以先排除这个 -
文件读取方式
fs.readFileSync("log.zip")
读取文件。在Node中还有其他的方法读取文件,我们拿来试试,看看是不是文件读取的方式问题。fs.ReadStream("log.zip")
不行fs.createReadStream("log.zip")
不行
所以也排除这个 -
压缩过程,也是最后一个了
这里我们不知道压缩方法是怎么个流程,所以去看看compressing的文档。