node使用require?mkdirp創(chuàng)建文件夾示例
更新時間:2023年08月14日 14:00:48 作者:羊先生
這篇文章主要為大家介紹了node使用require?mkdirp創(chuàng)建文件夾示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
mkdirp
npm i mkdirp -S // 1.0.4
今天在寫上傳文件時候,查看同步創(chuàng)建文件如是使用了mkdirp包,不過發(fā)現網絡有大部分錯誤用法,原因是mkdirp的版本升級了更改了用法
網絡錯誤用法
const mkdirp = require('mkdirp');
await mkdirp(dir) //錯誤用法一const mkdirp = require('mkdirp');
//錯誤用法二
mkdirp('./tmp/foo/bar/baz', function (err) {
console.log(err);
});正確寫法
const mkdirp = require('mkdirp')
// 返回值是一個Promise,解析為創(chuàng)建的一個目錄
mkdirp('/tmp/foo/bar/baz').then(made =>
console.log(made)
)const mkdirp = require('mkdirp')
// 返回目錄 同步寫法
const made = mkdirp.sync('/tmp/foo/bar/baz')
console.log(made)使用實例
// 上傳圖片
async uploadImg() {
const { ctx } = this
const parts = ctx.multipart({ autoFields: true })
const urls = []
const dir = path.join(this.config.baseDir, 'app/public/upload/image/', dayjs().format('YYYY-MM-DD'))
await mkdirp.sync(dir)
let stream
while ((stream = await parts()) != null) {
const fileType = stream.mimeType.split('/')[1]
const filename = dayjs().valueOf() + '.' + fileType || stream.filename.toLowerCase()
const target = path.join(dir, filename)
urls.push(`/public/upload/image/${filename}`)
const writeStream = await fs.createWriteStream(target)
await pump(stream, writeStream)
}
return urls[0]
}// 上傳文件
async uploadFile() {
const { ctx } = this
const urls = []
const stream = await ctx.getFileStream()
const dir = path.join(this.config.baseDir, 'app/public/upload/file/', dayjs().format('YYYY-MM-DD'))
await mkdirp.sync(dir)
const fileType = stream.filename.toLowerCase().split('.')
const filename = dayjs().valueOf() + '.' + fileType[fileType.length - 1]
// 生成寫入路徑
const target = path.join(dir, filename)
const writeStream = await fs.createWriteStream(target) // 寫入流
stream.pipe(writeStream) // 以管道方式寫入流
await new Promise((resolve, reject) => {
writeStream.on('finish', () => {
// 監(jiān)聽寫入完成事件
urls.push(`/public/upload/file/${filename}`)
resolve(stream.fields)
})
writeStream.on('error', async (err) => {
await sendToWormhole(stream) // 關閉管道
writeStream.destroy() // 銷毀
reject(err)
})
})
return urls[0]
}在線代碼 GitHub代碼
調用該方法

以上就是node使用require mkdirp創(chuàng)建文件夾示例的詳細內容,更多關于node require mkdirp創(chuàng)建文件夾的資料請關注腳本之家其它相關文章!
相關文章
Node.js中module.exports?和exports使用誤區(qū)
本文主要介紹了Node.js中module.exports?和exports使用誤區(qū),文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下2022-01-01
Nodejs 和Session 原理及實戰(zhàn)技巧小結
這篇文章主要介紹了Nodejs 和Session 原理及實戰(zhàn)技巧小結,需要的朋友可以參考下2017-08-08

