首页 > 解决方案 > Curl 命令未处理我对文件所做的更改

问题描述

我正在尝试使用命令行中的 curl 测试解析 node.js 中的 zip 文件。最初,我有一条如下所示的路线:

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 文件=@../../../Downloads/Basic_LinkedInDataExport_09-14-2018.zip http://localhost:5000/processZip/

最初,它给了我一个指向函数中第一个 createReadStream 实例的错误,所以我注释掉了所有代码,并尝试通过 console.log(zipFilePath) 查看正在发送的内容。但我仍然得到同样的错误。事实上,我可以注释掉、删除或更改路由或文件中的任何代码,但这并没有什么区别。我仍然得到同样的错误。就好像 curl 仍在将请求发送到文件的缓存版本,而不是处理我所做的更改。但是,如果我使用 sudo nano 从命令行检查文件,我可以看到更新的版本。什么可能导致此问题?我已保存文件并每次都重新启动服务器。是不是我需要比平时等待更长的时间才能处理更改,因为它的代码库比我以前工作的要大,或者是其他原因。对于它的价值,服务器将永远运行。提前感谢您的帮助!

标签: node.jscurlforever

解决方案


好的,我想通了,在 5000 上运行了一个幽灵进程。killall -9 节点成功了!


推荐阅读