fs 的替代品 fs-extra

fs-extra是fs的一个扩展,提供了非常多的便利API,并且继承了fs所有方法和为fs方法添加了promise的支持。

它应该是 fs 的替代品。

安装


npm install fs-extra -S

用法

应该总是fs-extra代替fs使用,所有fs方法都附在fs-extra,fs如果未传递回调,则所有方法都将返回promise
不再需要这个


const fs = require('fs');

你现在可以这样做


const fs = require('fs-extra');

如果你希望明确表示你在使用fs-extra,可以将fs标识符改为fse


const fse = require('fs-extra')

你可以保留两者使用,但它是多余的,因为 fs-extra 继承了fs

const fs = require('fs');
const fse = require('fs-extra')

Sync vs Async vs Async/Await

大多数方法默认为异步,如果未传递回调,则所有异步方法将返回一个promise。
一个典型的例子:


const fs = require('fs-extra')
 
// 异步方法,返回promise
fs.copy('/tmp/myfile', '/tmp/mynewfile')
  .then(() => console.log('success!'))
  .catch(err => console.error(err))
 
// 异步方法,回调函数
fs.copy('/tmp/myfile', '/tmp/mynewfile', err => {
  if (err) return console.error(err)
  console.log('success!')
})
 
// 同步方法,注意必须使用try catch包裹着才能捕获错误
try {
  fs.copySync('/tmp/myfile', '/tmp/mynewfile')
  console.log('success!')
} catch (err) {
  console.error(err)
}
 
// Async/Await:
async function copyFiles () {
  try {
    await fs.copy('/tmp/myfile', '/tmp/mynewfile')
    console.log('success!')
  } catch (err) {
    console.error(err)
  }
}
 
copyFiles()

API Methods

下面的所有方法都是fs-extra扩展方法

async

sync

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

友情链接更多精彩内容