Node搜寻模块规则

本文详细解析了Node.js中模块的加载方式,包括如何通过package.json文件指定模块的主文件,以及Node.js如何缓存模块对象,实现多次加载同一模块时的效率优化。并以MVC Web应用程序为例,说明了如何在项目中共享app对象。

 

看图知意:

注意事项:

第一,如果模块是目录,在模块目录中定义模块的文件必须被命名为 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 对象

评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值