2017-05-03 8 views
0

私は現在nodeJSを学習し、バージョンv6.10.2を実行している、私は優雅な-jsのフォルダにあるfs.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という名前の他のモジュールも見つかりませんでした。

+0

これは、それ自身が必要な組み込みの 'fs'モジュールではありません。これは実際の 'fs'モジュールで必要とされるgraceful-fs置換モジュールです。 – jfriend00

+0

実際のfsモジュールのコードは次のとおりです:https://github.com/nodejs/node/blob/master/lib/fs.js – jfriend00

+0

@ jfriend00インストールされたnodejsフォルダに実際のfsモジュールが見つかりませんでした。 graceful-fsモジュールはそれを必要としますか? – DanT29

答えて

1

012Jパッケージのコードの一部が、NodeJSに組み込まれたfsモジュールのラッパーです。このため、requireステートメントは組み込みのfsモジュールをインポートし、残りのコードはgraceful-fsパッケージの他の部分がデフォルトのfs機能の一部をオーバーライドできるように元のモジュールに影響を与えません。

+0

graceful-fsパッケージとは何ですか? – DanT29

+0

[パッケージホームページ](https://www.npmjs.com/package/graceful-fs)からリンクしました。「graceful-fsは、fsモジュールのドロップイン置換えとして機能し、さまざまな改良を加えました。さまざまなプラットフォームや環境で動作を正常化し、ファイルシステムへのアクセスをエラーから回復させることを目的としています。 – hopper

関連する問題