Modules 模块

    The contents of foo.js:
    foo.js 的代码:

    1. exports.area = function (r) {
    2. 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 环境变量来达到同样的目的。