require

在node中, 有一个require() 函数可以从其他文件中加载代码, 如果你使用npm来安装一个模块:

npm install uniq

然后有一个叫 nums.js 的文件, 我们可以 require('uniq'):

var uniq = require('uniq');var nums = [ 5, 2, 1, 3, 2, 5, 4, 2, 0, 1 ];console.log(uniq(nums));

使用node运行这个小程序的输出是:

$ node nums.js[ 0, 1, 2, 3, 4, 5 ]

你可以通过给require函数传一个以 . 开头的string来require其他相对路径的文件. 例如, 要从 main.js 加载 foo.js, 在 main.js 中你可以:

var foo = require('./foo.js');console.log(foo(4));

如果 foo.js 是在父文件夹, 你可以使用 ../foo.js 代替:

var foo = require('../foo.js');console.log(foo(4));

同样, 对于其他类型的相对路径, 相对路径总是以调用require函数的那个文件的位置来寻找.

注意 require() 返回了一个function, 然后我们把它赋值给了 uniq 变量. 我们可以另取一个名字, 也可以正常工作. require() 返回的是你指定的模块的导出值(exports).

require() 的工作方式不同于其他很多的模块系统, 其他很多模块系统的 imports 是类似于将名称暴露在全局空间或者 本地文件作用域的语句, 其中用到的名称不是模块使用者能够控制的.

在node下通过 require() 方式导入的代码, 别人阅读你的程序的源代码的时候可以轻易的知道每一段代码或者某一个函数从 哪里来. 当应用中的模块数量多起来后这种方式可伸缩性更好.

results matching ""

    No results matching ""