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读取memcache示例分享
Jan 02 NodeJs
Nodejs异步回调的优雅处理方法
Sep 25 NodeJs
NodeJS实现阿里大鱼短信通知发送
Jan 17 NodeJs
Nodejs中的this详解
Mar 26 NodeJs
win系统下nodejs环境安装配置
May 04 NodeJs
nodejs 子进程正确的打开方式
Jul 03 NodeJs
nodejs动态创建二维码的方法
Aug 12 NodeJs
nodejs+express搭建多人聊天室步骤
Feb 12 NodeJs
NodeJS服务器实现gzip压缩的示例代码
Oct 12 NodeJs
nodejs同步调用获取mysql数据时遇到的大坑
Mar 02 NodeJs
nodejs微信开发之接入指南
Mar 17 NodeJs
nodejs中实现修改用户路由功能
May 24 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 编程的 5个良好习惯
2009/02/20 PHP
Eclipse的PHP插件PHPEclipse安装和使用
2014/07/20 PHP
解决laravel查询构造器中的别名问题
2019/10/17 PHP
几个常用的JavaScript字符串处理函数 - split()、join()、substring()和indexOf()
2009/06/02 Javascript
jQuery Tips 为AJAX回调函数传递额外参数的方法
2010/12/28 Javascript
对xmlHttp对象的理解
2011/01/17 Javascript
jQuery News Ticker 基于jQuery的即时新闻行情展示插件
2011/11/05 Javascript
JQGrid的用法解析(列编辑,添加行,删除行)
2013/11/08 Javascript
浅谈 jQuery 事件源码定位问题
2014/06/18 Javascript
laytpl 精致巧妙的JavaScript模板引擎
2014/08/29 Javascript
使用jquery解析XML的方法
2014/09/05 Javascript
jquery模拟实现鼠标指针停止运动事件
2016/01/12 Javascript
JavaScript获取对象在页面中位置坐标的方法
2016/02/03 Javascript
JQuery DIV 动态隐藏和显示的方法
2016/06/23 Javascript
JavaScript将DOM事件处理程序封装为event.js 出现的低级错误问题
2016/08/03 Javascript
总结javascript中的六种迭代器
2016/08/16 Javascript
KnockoutJS 3.X API 第四章之数据控制流foreach绑定
2016/10/10 Javascript
浅谈Angular的$q, defer, promise
2016/12/20 Javascript
Angular.js ng-file-upload结合springMVC的使用教程
2017/07/10 Javascript
vue-cli开发时,关于ajax跨域的解决方法(推荐)
2018/02/03 Javascript
vue单页面在微信下只能分享落地页的解决方案
2019/04/15 Javascript
vue的keep-alive用法技巧
2019/08/15 Javascript
Vue+Element UI+vue-quill-editor富文本编辑器及插入图片自定义
2019/08/20 Javascript
python使用fileinput模块实现逐行读取文件的方法
2015/04/29 Python
Python实现给qq邮箱发送邮件的方法
2015/05/28 Python
你所不知道的Python奇技淫巧13招【实用】
2016/12/14 Python
Django ValuesQuerySet转json方式
2020/03/16 Python
在ipython notebook中使用argparse方式
2020/04/20 Python
python新手学习可变和不可变对象
2020/06/11 Python
Zavvi美国:英国娱乐之家
2017/03/19 全球购物
Swanson中国官网:美国斯旺森健康产品公司
2021/03/01 全球购物
销售自我评价
2013/10/22 职场文书
自动化专业毕业生自荐信
2013/11/01 职场文书
工作交流会欢迎词
2014/01/12 职场文书
物业客服专员岗位职责
2015/04/07 职场文书
教你使用Jenkins集成Harbor自动发布镜像
2022/04/03 Servers