node.js - Decompress-zip 在这条 Express 路由中发出任何东西,为什么?
问题描述
也许我只是累了,但我不明白为什么这行不通!这是使用无服务器框架 (serverless-http) 在 AWS Lambda 上运行的快速路由。
我正在使用 Multer 处理文件上传,这似乎工作正常,我可以看到文件已上传并且可用。我从 multer 创建的 req.file 属性派生了大部分文件路径。此代码不会 console.log 在我的 cloudwatch 日志中记录任何内容,没有错误,没有完成提取,没有“在这里!!” 来自 unzipper.extract() 上的过滤器。我已经使用 fs.exists 进行了测试,以确保文件确实存在(确实存在),并且当我故意使用假文件名时,会准确地发出错误。这是怎么回事?
app.post('/incoming', upload.single('file'), (req, res) => {
let filePath = '/tmp/'+req.file.filename
let unzipper = new DecompressZip(filePath)
unzipper.extract({
path: '/tmp',
filter: function (file) {
console.log('IN HERE!!');
return file.type !== "SymbolicLink";
}
})
unzipper.on('error', err => {
console.log('Error :', err);
res.send('Error!' + err)
})
unzipper.on('extract', (log) => {
console.log('Extract Completed.', log);
let list = []
const directoryPath = req.file.destination;
console.log('directoryPath :', directoryPath);
fs.readdir(directoryPath, function (err, files) {
if (err) {
console.log('Unable to scan directory: ' + err);
return list.push(err)
}
files.forEach(function (file) {
console.log(file);
list.push(file)
});
res.send(list)
});
})
})
解决方案
推荐阅读
- python - python正确获取网站登陆页面html
- http - net/http.Request.URL.Host 返回空字符串
- c++ - Qt 在 5.7 和 5.11 版本之间的演变有多重要?
- tableau-api - 在 Tableau Desktop 中转换列的类型
- haskell - 无压缩单子变压器
- c++ - C ++中的最小浮点正值
- javascript - 为什么像`scrollY`这样的窗口属性在赋值后不会自动更新?
- c++ - 混合 C++ 和汇编语言
- angular - Angular 7 TestBed.overrideProvider 不适用于 ActivateRoute
- android - 如何解决 Kotlin 类型转换问题?