2017-02-22 2 views
2

は、私はいくつかのNodeJSの例を見てきたし、私は次のように遭遇しました:NodeJS require( '..')?

var module = require('..'); 
var module = require('../'); 

私が何を必要と理解して、私はそれがこのように書かれているとき、それが何をするか理解していません。誰かが私にそれを説明できますか?

+0

githubの例を教えてください。 – slorenzo

答えて

2

これはhttps://nodejs.org/api/modules.html

で定義されたルールは、 Y

パスにモジュールから(X)が必要である
  • X 'は./' または「で始まる場合/ 'または' ../ '
    a。 LOAD_AS_FILE(Y + X)
    b。 ../又は..のでLOAD_AS_DIRECTORY(Y + X)
  • がファイルではない、それはディレクトリ

    LOAD_AS_DIRECTORY(X)

    1. としてロードするために、経路Bに行きますX/package.jsonがファイルの場合、
      a。 X/package.jsonを解析し、 "main"フィールドを探します。
      b。 M = X +(jsonメインフィールド)
      c。 LOAD_AS_FILE(M)
    2. X/index.jsがファイルの場合は、X/index.jsをJavaScriptテキストとしてロードします。 STOP
    3. X/index.jsonがファイルの場合、X/index.jsonをJavaScriptオブジェクトと解析します。 STOP
    4. X/index.nodeがファイルの場合、X/index.nodeをバイナリアドオンとしてロードします。そのルールによって

    を停止、それがこの順

    1)../package.json

    2)../index.js

    3)../index.json

    4)../index.nodeに以下のファイルをチェックします

    1

    ディレクトリが必要な場合は、requireはこれらの規則に基づいて、そのディレクトリからモジュール含めるようにしようとします:

    X/package.jsonがファイルの場合、
       。 X/package.jsonを解析し、 "main"フィールドを探します。
        b。 M = X +(jsonメインフィールド)とする。
        c。 LOAD_AS_FILE(M)
    2. X/index.jsがファイルの場合は、X/index.jsをJavaScriptテキストとしてロードします。 STOP
    3. X/index.jsonがファイルの場合、X/index.jsonをJavaScriptオブジェクトと解析します。STOP
    4. X/index.nodeがファイルの場合、X/index.nodeをバイナリアドオンとしてロードします。

    module/ 
        index.js 
        src/ 
        file-including.js 
    

    これはindex.jsをロードします:あなたはこのように見えるディレクトリ構造を持っている

    ほとんどのSTOP。 require('../index.js')、さらにはrequire('../index')と書くこともでき、同じように機能します。