通過4中不通的方式實現對乙個檔案的拷貝
方式一:readfile 非同步一次性讀取檔案再寫入
//非同步形式讀取檔案
function
copyfile(url)/$_copy_1$`, data , err => `)
}else
})})
}
方式二:readfilesync 同步一次性讀取檔案再寫入
//同步形式讀取檔案
function
copysync(url)/$_copy_1$`,data)
console.log('同步拷貝完成!')
}
方式三:使用流邊讀邊寫
const fs = require('fs')const path = require('path')
//使用流拷貝
function
streamcopyfile(url)
const readable =fs.createreadstream(url, options)
const writable = fs.createwritestream(`$/$_copy$`)
var size = 0
var totalsize = 0const stat = fs.stat(url, (err , stats) =>)
readable.on('open', () =>)
readable.on('data', data =>)
readable.on('end', () =>)
readable.on('error', err =>`)
})writable.on('error', err =>`)
})//將記憶體中資料全部寫入檔案後觸發 drain 事件
writable.on('drain', () =>)
writable.on('finish', () =>)
}
方式四:使用pipe
//通過管道的方式
function
pipecopyfile(url)/$_copy_2$`)
var size = 0
var totalsize = 0const stat = fs.stat(url, (err , stats) =>)
writable.on('pipe', (src) =>)
writable.on('finish', () =>)
readable.pipe(writable)
}
方法一和方法二使用起來簡單,但是在操作大檔案時對記憶體壓力大,不推薦讀取大檔案使用
另外如果需要對檔案制定塊進行讀取和寫入請使用read 、write 兩個方法
nodejs實現檔案上傳
前段時間在做個人專案的時候,用到了nodejs服務端上傳檔案,現在回頭把這個小結一下,作為記錄。本人上傳檔案時是基於express的multiparty,當然也可以使用connect multiparty中介軟體實現,但官方似乎不推薦使用connect multiparty中介軟體。廢話不多說,下面...
nodejs實現檔案上傳
客戶端的上傳可以使用表單,或者直接使用ajax,我們這裡使用ajax 服務端 const express require express var upload require src router upload console.log server is running at upload.js v...
nodejs實現檔案上傳查詢
專案目錄 1.files目錄下存放檔案 2.public目錄存放靜態檔案,例如html檔案 前端 search.html 引入框架 var express require express 定義檔案物件 var fs require fs 編碼 var iconv require iconv lite...