[英]How to create destination path for node.js stream pipe?
我想將node.js流傳輸到輸出文件中。 但是我還想確保在開始管道傳輸之前存在輸出目標。 以下代碼的問題在於,管道的事件處理程序添加得較晚(在assurePath
回調之后),因此輸入流中的數據不再可用。 我不想使用sync fs方法不阻止整個過程。
assurePath = (path, callback) ->
path = path.split path.sep
i = 0
async.eachSeries path[1...path.length-1], (segment, callback) =>
i++
p = path[0..i].join path.sep
fs.exists p, (exists) =>
return callback() if exists
fs.mkdir p, callback
,
callback
saveStream = (filename, stream, callback) ->
path = fullPath filename
assurePath path, (error) ->
return callback error if error
finished = false
stream.on('error', (error) ->
return if finished
finished = true
callback error
).pipe(
fs.createWriteStream path
).on('finish', ->
return if finished
finished = true
callback()
).on('error', (error) ->
return if finished
finished = true
callback error
)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.