2015-10-21 55 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