看图知意:
注意事项:
第一,如果模块是目录,在模块目录中定义模块的文件必须被命名为 index.js,除非你在这个目录下一个叫 package.json 的文件里特别指明。要指定一个取代 index.js 的文件,package.json文件里必须有一个用 JavaScript 对象表示法(JSON)数据定义的对象,其中有一个名为 main 的键,指明模块目录内主文件的路径。如图:
下面是一个 package.json 文件的例子,它指定 currency.js 为主文件:
{
"main": "currency.js"
}
第二,Node 能把模块作为对象缓存起来。如果程序中的两个文件引入了相同的模块,第一
个 require 会把模块返回的数据存到内存中,这样第二个 require 就不用再去访问和计算模块
的源文件了。也就是说,在同一个进程中用 require 加载一个模块得到的是相同的对象。假设
你搭建了一个 MVC Web 应用程序,它有一个主对象 app。你可以设置好那个 app 对象,导出它,
然后在项目中的任何地方 require 它。如果你在这个 app 对象中放了一些配置信息,那你就可
以在其他文件中访问这些配置信息的值,假定目录结构如下所示:
project
app.js
models
post.js
下图展示了它的工作原理。
上图在 Web 程序中共享 app 对象