nodejs的require模块(文件模块/核心模块)及路径介绍


Posted in NodeJs onJanuary 14, 2013

在nodejs中,模块大概可以分为核心模块和文件模块。

核心模块是被编译成二进制代码,引用的时候只需require表示符即可,如(require('net'))。

文件模块,则是指js文件、json文件或者是.node文件。在引用文件模块的时候后要加上文件的路径:/.../.../xxx.js表示绝对路径、./xxx.js表示相对路径(同一文件夹下的xxx.js),../表示上一级目录。如果既不加/.../、../又不加./的话,则该模块要么是核心模块,要么是从一个node_modules文件夹加载。

对于加载模块时既没指出./ ../ /.../时,加载模块的搜索路径。如果'/home/ry/projects/foo.js' 中的文件调用了 require('bar.js') ,node将在下面的位置进行搜索:

/home/ry/projects/node_modules/bar.js 
/home/ry/node_modules/bar.js 
/home/node_modules/bar.js 
/node_modules/bar.js

文件夹作为模块
首先在文件夹的根下建立package.json文件,它标识了一个主模块。一个package.json中的内容可能如下:
{ "name" : "some-library", "main" : "./lib/some-library.js" }

如果这是在一个文件夹./some-library下,那么require('./some-library')时将试图加载./some-library/lib/some-library.js如果在这个目录下没有package.json文件,node将试图从这个目录下加载index.js或index.node文件。例如,如果上面没有package.json文件,那么require('./some-library')时,将试图加载下面的文件
./some-library/index.js 
./some-library/index.node
NodeJs 相关文章推荐
nodejs实现黑名单中间件设计
Jun 17 NodeJs
基于NodeJS的前后端分离的思考与实践(二)模版探索
Sep 26 NodeJs
轻松创建nodejs服务器(9):实现非阻塞操作
Dec 18 NodeJs
nodejs中使用多线程编程的方法实例
Mar 24 NodeJs
ubuntu下安装nodejs以及升级的办法
May 08 NodeJs
详解nodejs与javascript中的aes加密
May 22 NodeJs
NodeJS遍历文件生产文件列表功能示例
Jan 22 NodeJs
nodejs学习笔记之路由
Mar 27 NodeJs
nodejs读取并去重excel文件
Apr 22 NodeJs
nodejs取得当前执行路径的方法
May 13 NodeJs
nodejs检测因特网是否断开的解决方案
Apr 17 NodeJs
详解NodeJS模块化
Jun 15 NodeJs
windows系统下简单nodejs安装及环境配置
Jan 08 #NodeJs
NodeJs中的非阻塞方法介绍
Jun 05 #NodeJs
nodejs win7下安装方法
May 24 #NodeJs
NodeJS的模块写法入门(实例代码)
Mar 07 #NodeJs
nodejs入门详解(多篇文章结合)
Mar 07 #NodeJs
NodeJS 模块开发及发布详解分享
Mar 07 #NodeJs
用nodejs访问ActiveX对象,以操作Access数据库为例。
Dec 15 #NodeJs
You might like
php4的session功能评述(一)
2006/10/09 PHP
ThinkPHP模板Switch标签用法示例
2014/06/30 PHP
PHP实现的观察者模式实例
2017/06/21 PHP
简单实用的PHP文本缓存类实例
2019/03/22 PHP
Thinkphp5+plupload实现的图片上传功能示例【支持实时预览】
2019/05/08 PHP
JS/FLASH实现复制代码到剪贴板(兼容所有浏览器)
2013/05/27 Javascript
javascript验证身份证完全方法具体实现
2013/11/18 Javascript
javascript实现的平方米、亩、公顷单位换算小程序
2014/08/11 Javascript
Egret引擎开发指南之编译项目
2014/09/03 Javascript
AngularJS HTML编译器介绍
2014/12/06 Javascript
js中对函数设置默认参数值的3种方法
2015/10/23 Javascript
javascript中setAttribute兼容性用法分析
2016/12/12 Javascript
Node.js数据库操作之查询MySQL数据库(二)
2017/03/04 Javascript
JS获取鼠标位置距浏览器窗口距离的方法示例
2017/04/11 Javascript
vue脚手架中配置Sass的方法
2018/01/04 Javascript
vue中render函数的使用详解
2018/10/12 Javascript
微信小程序实现蓝牙打印
2019/09/23 Javascript
微信小程序通过websocket实时语音识别的实现代码
2020/08/19 Javascript
详解Django框架中用户的登录和退出的实现
2015/07/23 Python
python自动12306抢票软件实现代码
2018/02/24 Python
python如何通过实例方法名字调用方法
2018/03/21 Python
解决sublime+python3无法输出中文的问题
2018/12/12 Python
python整小时 整天时间戳获取算法示例
2019/02/20 Python
python3实现猜数字游戏
2020/12/07 Python
django框架单表操作之增删改实例分析
2019/12/16 Python
关于torch.optim的灵活使用详解(包括重写SGD,加上L1正则)
2020/02/20 Python
浅谈Keras中shuffle和validation_split的顺序
2020/06/19 Python
详解HTML5 Canvas绘制不规则图形时的非零环绕原则
2016/03/21 HTML / CSS
美国电视购物:QVC
2017/02/06 全球购物
马来西亚网上花店:FlowerAdvisor马来西亚
2020/01/03 全球购物
私人会所最新创业计划书范文
2014/03/24 职场文书
小学安全工作汇报材料
2014/08/19 职场文书
小学生国庆演讲稿
2014/09/05 职场文书
合法的离婚协议书范本
2014/10/23 职场文书
ipad隐藏软件app图标方法
2022/04/19 数码科技
postgresql之greenplum字符串去重拼接方式
2023/05/08 PostgreSQL