2015-10-21 72 views
0

考慮到這是我的工作目錄模塊的NodeJS負荷

|-- bower.json 
|-- lib 
| |-- foo1.js 
| |-- foo2.js 
| `-- foo3.js 
|-- node_modules 
| |-- body-parser 
| |-- bower 
| |-- express 
| `-- md5 
|-- package.json 
|-- runserver.sh 
|-- server.js 
`-- test 

我怎麼在我的模塊,我在寫加載第三方庫模塊(存在於./node_modules)的文件結構./ lib目錄?

+2

'要求(「身體解析器」);'這將在您的本地node_modules第一張支票,如果沒有找到,它會檢查在全球node_modules目錄 – CodingDefined

+0

退房自述爲每個使用的包,但通常你會喜歡'var express = require('express');' –

回答

1

您的require s是相對於執行要求的文件。如果您server.js需要的東西需要從./lib/,那麼你就這樣做:

// in ./server.js 
var foo1 = require('./lib/foo1'); // file path: resolve relative to this file. 

唯一的例外是「npm安裝」的依賴,其住在node_modules目錄,並且不需要文件的位置,只需名稱:

// in ./server.js 
var express = require('express'); // not a file path: find in node_modules 

// in ./lib/foo1.js 
var express = require('express'); // not a file path: find in node_modules 

// in some hypothetical ./lib/extended/secondary/mixin/foo7.js 
var express = require('express'); // not a file path: find in node_modules 
+0

考慮到我需要在模塊中使用npm安裝的依賴關係(foo1,foo2m foo3)。它是如何完成的? – c0deBeastx

+0

你做我的答案是什麼?如果您需要在您的'./ lib/foo1.js'文件或者項目樹中任何位置的任何其他文件中使用安裝了npm的模塊,那麼您仍然只需要直接按名稱來命名。 –

+0

請問節點看父目錄嗎?因爲我的模塊比文件結構的層次結構低一級 – c0deBeastx