Modules 模块
The contents of foo.js:
foo.js 的代码:
exports.area = function (r) {
return 2 * PI * r;
模块circle.js 有两个方法area()和circumference()。为了使其对外可见,将其导出到一个特殊的对象exprots(还
可以用this 来替代exports)。此模块中的本地变量是私有的。在这个例子中,PI 便是circle 模块的似有变量,puts()
方法则是引用自系统自带模块’sys’。没有’./‘前缀的模块都是写内建的。我们将会详细讲解这个特性。
[ ‘/home/ryan/.node_libraries’ ] [ ‘/home/ryan/.node_libraries’ ]
所以当呼叫require(‘assert’)是,系统会沿着如下路径寻找该模块:
- 2: /home/ryan/.node_libraries/assert.node
- 3: /home/ryan/.node_libraries/assert/index.js
- 4: /home/ryan/.node_libraries/assert/index.node
require.paths 可以在运行时修改或者在类UNIX 系统下通过修改NODE_PATH 环境变量来达到同样的目的。