我正在尝试从命令行使用curl在node.js中测试对压缩文件的解析。最初,我有一条如下所示的路由:
app.post('/processZip', (req, res) => {
const zip = req.file
console.log(req)
extractCSVFilesFromZip(zip, '/tmp/connections', '/tmp/messages')
const connectionsOutputPath = '/tmp/connections'
const messagesOutputPath = '/tmp/messages'
console.log(`Size of Parsed Connections File: ${connectionsOutputPath.size}`)
console.log(`Size of Parsed Messages File: ${messagesOutputPath.size}`)
res.send('success!')
})
它调用如下所示的函数:
const extractCSVFilesFromZip = (zipFilePath, connectionsCSVOutputPath,
messagesCSVOutputPath) => {
console.log(zipFilePath)
fs.createReadStream(zipFilePath)
.pipe(unzip.Parse())
.on('entry', entry => {
const [
fileName,
size
] = [
entry.path,
entry.size
]
if (fileName === 'Connections.csv') {
console.log(`Size of Connections File to Parse: ${size}`)
entry.pipe(fs.createWriteStream(connectionsCSVOutputPath))
} else if (fileName === 'Messages.csv') {
console.log(`Size of Messages File to Parse: ${size}`)
entry.pipe(fs.createWriteStream(messagesCSVOutputPath))
} else {
entry.autodrain()
}
})
}
我使用这个curl命令来测试这个请求:
curl -F file=@../../../Downloads/Basic_LinkedInDataExport_09-14-2018.zip http://localhost:5000/processZip/ (卷曲模式)
最初,它给我一个错误,指向函数中的第一个createReadStream实例,所以我注释掉了所有代码,只尝试console.log(zipFilePath)查看正在发送的内容。但我仍然得到相同的错误。实际上,我可以注释掉、删除或更改路由或文件中的任何代码,但这没有区别。我仍然得到相同的错误。这就好像curl仍然将请求发送到文件的缓存版本,而不是处理我所做的更改。但是,如果我从命令行使用sudo nano检查这些文件,我可以看到更新后的版本。导致此问题的原因可能是什么?我已经保存了这些文件,并且每次都重新启动服务器。是不是我需要比平时等待更长的时间来处理更改,因为它是一个比我习惯使用的代码库更大的代码库,或者是其他原因。无论其价值如何,服务器将永远由其运行。提前感谢您的帮助!
发布于 2018-09-20 07:10:02
好吧,我知道了,在5000上有一个幽灵进程在运行。killall -9节点成功了!
https://stackoverflow.com/questions/52414913
复制相似问题