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爬虫遇到的乱码问题汇总
Apr 07 NodeJs
nodejs+websocket实时聊天系统改进版
May 18 NodeJs
nodejs 搭建简易服务器的图文教程(推荐)
Jul 18 NodeJs
使用Nodejs连接mongodb数据库的实现代码
Aug 21 NodeJs
解决Nodejs全局安装模块后找不到命令的问题
May 15 NodeJs
nodejs 十六进制字符串型数据与btye型数据相互转换
Jul 30 NodeJs
Nodejs调用Dll模块的方法
Sep 17 NodeJs
NodeJS模块与ES6模块系统语法及注意点详解
Jan 04 NodeJs
搭建一个nodejs脚手架的方法步骤
Jun 28 NodeJs
nodejs实现聊天机器人功能
Sep 19 NodeJs
NodeJS开发人员常见五个错误理解
Oct 14 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
PHP CURL模拟登录新浪微博抓取页面内容 基于EaglePHP框架开发
2012/01/16 PHP
linux下为php添加iconv模块的方法
2016/02/28 PHP
PHP批量获取网页中所有固定种子链接的方法
2016/11/18 PHP
jQuery帮助之CSS尺寸(五)outerHeight、outerWidth
2009/11/14 Javascript
js简单实现根据身份证号码识别性别年龄生日
2013/11/29 Javascript
jquery实现tr元素的上下移动示例代码
2013/12/20 Javascript
JS判断变量是否为空判断是否null
2014/07/25 Javascript
JavaScript使用focus()设置焦点失败的解决方法
2014/09/03 Javascript
JS取得绝对路径的实现代码
2015/01/16 Javascript
JavaScript检测原始值、引用值、属性
2016/06/20 Javascript
jQuery插件Flexslider实现图片轮播、图文结合滑动切换效果
2020/04/16 Javascript
点击页面任何位置隐藏div的实现方法
2016/09/05 Javascript
JavaScript递归操作实例浅析
2016/10/31 Javascript
详解使用路由延迟加载 Angular 模块
2017/10/12 Javascript
不使用 JS 匿名函数理由
2017/11/17 Javascript
nodejs中Express与Koa2对比分析
2018/02/06 NodeJs
vue中el-input绑定键盘按键(按键修饰符)
2020/07/22 Javascript
js实现金山打字通小游戏
2020/07/24 Javascript
JS实现拖动模糊框特效
2020/08/25 Javascript
在Python下利用OpenCV来旋转图像的教程
2015/04/16 Python
Python基础教程之tcp socket编程详解及简单实例
2017/02/23 Python
在NumPy中创建空数组/矩阵的方法
2018/06/15 Python
关于python列表增加元素的三种操作方法
2018/08/22 Python
python 实现查询Neo4j多节点的多层关系
2019/12/23 Python
VScode连接远程服务器上的jupyter notebook的实现
2020/04/23 Python
Keras预训练的ImageNet模型实现分类操作
2020/07/07 Python
CSS3实现swap交换动画
2016/01/19 HTML / CSS
三星加拿大官方网上商店:Samsung CA
2020/12/18 全球购物
中式面点餐厅创业计划书
2014/01/29 职场文书
感恩节红领巾广播稿
2014/02/11 职场文书
英语教师自荐信
2014/05/26 职场文书
地理信息科学专业推荐信
2014/09/08 职场文书
会计人员岗位职责
2015/02/03 职场文书
办公室年度工作总结2015
2015/05/21 职场文书
HashMap实现保存两个key相同的数据
2021/06/30 Java/Android
教你如何用cmd快速登录服务器
2022/06/10 Servers