赞
踩
Node.js 提供了 exports 和 require 两个对象,其中 exports 是模块公开的接口,require 用于从外部获取一个模块的接口,即所获取模块的 exports 对象。
在 Node.js 中,引入一个模块非常简单:
1.创建一个自定义模块,名为math.js
exports.add = function(a,b) {
console.log('a + b = ',a+b);
return a+b;
}
2.创建一个sgf.js文件,引入刚才创建的自定义模块math,内容如下
var math = require('./math');
math.add(1,2);
node.js存在两种模块,分别为原生模块(也叫内置模块)和文件模块:
一、核心模块
模块名称 | 功能 |
---|---|
HTTP模块 | 处理客户端的网络请求 |
URL模块 | 处理客户端请求过来的URL |
Query Strings模块 | 处理客户端通过get/post 请求传递过来的参数 |
File System模块 | 在服务端来操作文件,如写入文件、读取文件等操作 |
Path模块 | 操作文件的路径,为文件操作服务 |
Global模块 | 全局共享的,不需要导入模块即可以使用 |
二、文件模块
.js、.json、.node
的顺序为其加上扩展名。一、优先从缓存中加载,如果缓存中存在对应模块则返回,否则进行下一步
二、如果不带./或/的,则从原生模块(也叫内置模块)中加载,如果原生模块中没有匹配的,则当做第三方模块加载。如果带./或/的,先把moduleName当做文件来加载,带扩展名时确切的文件名进行加载,否则在查找时会按照.js、.json、.node
的顺序为其加上扩展名;加上扩展名都没有匹配的文件时,会将moduleName当成目录来加载。
三、第三方模块的加载:从当前模块所在路径下的/node_modules 文件夹中加载第三方模块,如果没有找到对应的第三方模块,则移动到再上一层父目录中,进行加载,直到文件系统的根目录。如在C:\A\B\C\D\sgf.js 路径下require(“moduleName”);
依次查找路径 |
---|
C:\A\B\C\D\node_modules\moduleName |
C:\A\B\C\node_modules\moduleName |
C:\A\B\node_modules\moduleName |
C:\A\node_modules\moduleName |
C:\node_modules\moduleName |
四、目录加载:
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。