node使用require?mkdirp創(chuàng)建文件夾示例
mkdirp
npm i mkdirp -S // 1.0.4
今天在寫上傳文件時候,查看同步創(chuàng)建文件如是使用了mkdirp包,不過發(fā)現(xiàn)網(wǎng)絡有大部分錯誤用法,原因是mkdirp的版本升級了更改了用法
網(wǎng)絡錯誤用法
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代碼
調(diào)用該方法
以上就是node使用require mkdirp創(chuàng)建文件夾示例的詳細內(nèi)容,更多關于node require mkdirp創(chuàng)建文件夾的資料請關注腳本之家其它相關文章!
相關文章
HTTP JSON接口模擬工具Interfake快速入門教程
這篇文章主要為大家介紹了HTTP JSON接口模擬工具Interfake快速入門教程,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2023-06-06Electron調(diào)用外接攝像頭并拍照上傳實現(xiàn)詳解
這篇文章主要為大家介紹了Electron調(diào)用外接攝像頭并拍照上傳實例實現(xiàn)詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2023-02-02Electron如何通過ffi-napi調(diào)用dll導出接口
文章介紹了如何在Electron項目中使用ffi-napi模塊調(diào)用DLL文件,并詳細描述了環(huán)境搭建、安裝Electron和ffi-napi、配置Visual Studio和Python環(huán)境、解決常見問題等步驟,感興趣的朋友跟隨小編一起看看吧2025-02-02nodejs+express最簡易的連接數(shù)據(jù)庫的方法
這篇文章主要介紹了nodejs+express 最簡易的連接數(shù)據(jù)庫,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2020-12-12利用n 升級工具升級Node.js版本及在mac環(huán)境下的坑
這篇文章主要介紹了利用n 升級工具升級Node.js的方法,以及通過網(wǎng)友的測試發(fā)現(xiàn)在mac環(huán)境下利用n工具升級不成功導致node.js不可用的解決方法,有需要的朋友可以參考借鑒,下面來一起看看吧。2017-02-02express框架+bootstrap美化ejs模板實例分析
這篇文章主要介紹了express框架+bootstrap美化ejs模板,結合實例形式分析了express框架引入bootstrap結合ejs模版引擎相關操作技巧與注意事項,需要的朋友可以參考下2023-05-05