Node js文件系统:未为可读流调用结束事件
Node js file system: end event not called for readable stream
我正在尝试提取一个 .tar 文件(从目录打包),然后检查提取目录中的文件名。我正在使用 tar-fs 提取 tar 文件,然后使用 fs.createReadStream 来操作数据。到目前为止,这是我得到的:
fs.createReadStream(req.files.file.path)
.pipe(tar.extract(req.files.file.path + '0'))
.on('error', function() {
errorMessage = 'Failed to extract file. Please make sure to upload a tar file.';
})
.on('entry', function(header, stream, callback) {
console.error(header);
stream.on('end', function() {
console.error("this is working");
});
})
.on('end', function() {
//the one did not get called
console.error('end');
})
;
我希望提取整个文件夹,然后检查文件名。好吧,我还没到那一步..
据我了解,我在管道后得到了一个可读流。可读流有结束事件?我的问题是,为什么没有调用代码中的 end
事件?
谢谢!
侦听可写流的 finish
事件。当调用 end()
并且条目处理完成时会触发此事件。关于它的更多信息 here。
.on('finish', function() {
console.error('end');
})
我正在尝试提取一个 .tar 文件(从目录打包),然后检查提取目录中的文件名。我正在使用 tar-fs 提取 tar 文件,然后使用 fs.createReadStream 来操作数据。到目前为止,这是我得到的:
fs.createReadStream(req.files.file.path)
.pipe(tar.extract(req.files.file.path + '0'))
.on('error', function() {
errorMessage = 'Failed to extract file. Please make sure to upload a tar file.';
})
.on('entry', function(header, stream, callback) {
console.error(header);
stream.on('end', function() {
console.error("this is working");
});
})
.on('end', function() {
//the one did not get called
console.error('end');
})
;
我希望提取整个文件夹,然后检查文件名。好吧,我还没到那一步..
据我了解,我在管道后得到了一个可读流。可读流有结束事件?我的问题是,为什么没有调用代码中的 end
事件?
谢谢!
侦听可写流的 finish
事件。当调用 end()
并且条目处理完成时会触发此事件。关于它的更多信息 here。
.on('finish', function() {
console.error('end');
})