2014-11-03 112 views
0

這應該是一個非常簡單的問題。我認爲這可能就像大會一樣簡單,但我想檢查一下,因爲我不知道它背後是否還有其他任何東西,甚至還有什麼短語可以搜索它。模塊的節點路徑前綴

var hello = require('./hello'); 
hello.world(); 

想象一下上面的代碼。 require路徑的前綴爲./,對於同一文件夾中的文件,此路徑始終存在。爲什麼不只是文件名?

Comparitively共同使用

var http = require('http'); 

不是由一個前綴./我目前假設這是由於HTTP文件是一個「原生」模塊。因此,我認爲沒有./的任何東西都在尋找本地Node名稱空間,任何帶有./的東西都在尋找本地文件?

也將在更高的目錄中的文件像PHP這將是../ 在節點將是.././或./../

+1

更高目錄中的文件你會期待什麼「../」。 「./」僅僅是同一個目錄中文件的約定。 – ceptno 2014-11-03 22:29:17

+1

這實際上比節點約定更像一個* NIX約定。如果您使用命令'ls -a'在* NIX系統上的任何文件夾(如MacOSX,Ubuntu,CentOS等)中列出隱藏文件,則列出的前兩個'文件'將是'.',它是對當前文件夾和「..」,它是對包含當前文件夾的文件夾的引用。 – 2014-11-03 23:40:23

回答

2

啊,這是使用簡單的約定在節點中。請參閱module.require docs

而對於它的價值,您不會總是使用require("./hello")。有時你會使用require("../../foo")require("../")


簡而言之,

  • 您使用path您的模塊中需要的文件
  • 您使用字符串identifier爲包括其他模塊