nodejs中的fs.js模块需要自己吗?

时间:2017-05-03 16:15:17

标签: node.js

我目前正在学习nodeJS并运行版本v6.10.2,我正在查看graceful-js文件夹中的fs.js模块源代码并注意到其中的代码:

'use strict'

var fs = require('fs')

module.exports = clone(fs)

function clone (obj) {
  if (obj === null || typeof obj !== 'object')
    return obj

  if (obj instanceof Object)
    var copy = { __proto__: obj.__proto__ }
  else
    var copy = Object.create(null)

  Object.getOwnPropertyNames(obj).forEach(function (key) {
    Object.defineProperty(copy, key, Object.getOwnPropertyDescriptor(obj, key))
  })

  return copy
}

模块如何才能与clone关键字有关?我找不到任何其他名为fs.js的模块。

1 个答案:

答案 0 :(得分:1)

您正在查看graceful-fs包的部分代码,该包是NodeJS中内置fs模块的包装器。所以这段代码不需要自己 - require语句导入内置的fs模块,其余的代码克隆它,以便graceful-fs包的其他部分可以覆盖一些默认的fs功能而不影响原始模块。