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学习笔记之Global Objects全局对象
Jan 13 NodeJs
详解Nodejs基于mongoose模块的增删改查的操作
Dec 21 NodeJs
nodejs和php实现图片访问实时处理
Jan 05 NodeJs
nodejs+express实现文件上传下载管理网站
Mar 15 NodeJs
nodejs学习笔记之路由
Mar 27 NodeJs
初识NodeJS服务端开发入门(Express+MySQL)
Apr 07 NodeJs
nodeJS实现简单网页爬虫功能的实例(分享)
Jun 08 NodeJs
nodeJS实现路由功能实例代码
Jun 08 NodeJs
深入学习nodejs中的async模块的使用方法
Jul 12 NodeJs
nodejs分离html文件里面的js和css的方法
Apr 09 NodeJs
如何利用nodejs自动定时发送邮件提醒(超实用)
Dec 01 NodeJs
NodeJS和浏览器中this关键字的不同之处
Mar 03 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 FOR MYSQL 代码生成助手(根据Mysql里的字段自动生成类文件的)
2011/07/23 PHP
php数组函数序列 之shuffle()和array_rand() 随机函数使用介绍
2011/10/29 PHP
php实例分享之二维数组排序
2014/05/15 PHP
nginx下安装php7+php5
2016/07/31 PHP
Laravel访问出错提示:`Warning: require(/vendor/autoload.php): failed to open stream: No such file or di解决方法
2019/04/02 PHP
javascript的对话框详解与参数
2007/03/08 Javascript
JS动态添加option和删除option(附实例代码)
2013/04/01 Javascript
jquery delay()介绍及使用指南
2014/09/02 Javascript
基于JavaScript实现手机短信按钮倒计时(超简单)
2015/12/30 Javascript
JavaScript基于扩展String实现替换字符串中index处字符的方法
2017/06/13 Javascript
JavaScript之Canvas_动力节点Java学院整理
2017/07/04 Javascript
原生js获取left值和top值的三种方法
2017/08/02 Javascript
理解nodejs的stream和pipe机制的原理和实现
2017/08/12 NodeJs
使用html+js+css 实现页面轮播图效果(实例讲解)
2017/09/21 Javascript
vue父组件中获取子组件中的数据(实例讲解)
2017/09/27 Javascript
vue-cli启动本地服务局域网不能访问的原因分析
2018/01/22 Javascript
Vue封装Swiper实现图片轮播效果
2018/02/06 Javascript
vue中render函数的使用详解
2018/10/12 Javascript
亲自动手实现vue日历控件
2019/06/26 Javascript
[46:59]完美世界DOTA2联赛PWL S2 GXR vs Ink 第二场 11.19
2020/11/20 DOTA
[20:39]DOTA2-DPC中国联赛 正赛开幕式 1月18日
2021/03/11 DOTA
python简单实现旋转图片的方法
2015/05/30 Python
用Python编写简单的微博爬虫
2016/03/04 Python
Django基础之Model操作步骤(介绍)
2017/05/27 Python
python基础之入门必看操作
2017/07/26 Python
Python键盘输入转换为列表的实例
2018/06/23 Python
Python实现输入二叉树的先序和中序遍历,再输出后序遍历操作示例
2018/07/27 Python
Python3读取和写入excel表格数据的示例代码
2020/06/09 Python
python基于opencv 实现图像时钟
2021/01/04 Python
Guess欧洲官网:美国服饰品牌
2019/08/06 全球购物
Java中的异常处理机制的简单原理和应用
2013/04/27 面试题
无工作经验者个人求职信范文
2013/12/22 职场文书
关于感恩的演讲稿500字
2014/08/26 职场文书
党员证明信
2015/06/19 职场文书
Redis做数据持久化的解决方案及底层原理
2021/07/15 Redis
SQL Server中使用表变量和临时表
2022/05/20 SQL Server