2017-02-22 52 views
2

我一直在尋找通過一些實例的NodeJS和我遇到了以下幾點:NodeJS require('..')?

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

我明白了什麼需要做的,但我不明白,當它寫成這樣它做什麼。有人可以向我解釋嗎?

+0

你能給我提供github的例子嗎? – slorenzo

回答

2

這是https://nodejs.org/api/modules.html

需要(X)所定義的從模塊在路徑中的規則ÿ

  • 如果X始於 './' 或「/ '或'../'
    a。 LOAD_AS_FILE(Y + X)
    b。 LOAD_AS_DIRECTORY(Y + X)
  • 由於../..不是一個文件,它將進入路徑B,加載作爲目錄

    LOAD_AS_DIRECTORY(X)

    1. 如果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加載爲二進制附件。 STOP

    通過該規則,它將檢查以該順序

    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加載爲二進制附件。 STOP

    最有可能你有一個看起來像這樣的目錄結構:

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

    這將加載index.js。你也可以把它寫成require('../index.js')甚至require('../index'),它的功能是一樣的。