前端移动开发的类库 google前端开发插件 美图秀秀前端开发招聘
一.模块概念
1.模块分类:
①.核心模块 http/fs/path
②.文件模块 var util = require(‘./util.js’);
③.第三方模块 var express = require(‘express’);
注:require命令用于加载文件,后缀名默认为.js
2.路径规则
如果参数字符串以“/”开头,则表示加载的是一个位于绝对路径的模块文件。比如,require(‘/home/marco/foo.js’)将加载/home/marco/foo.js。
如果参数字符串以“./”开头,则表示加载的是一个位于相对路径(跟当前执行脚本的位置相比)的模块文件。比如,require(‘./circle’)将加载当前脚本同一目录的circle.js。
如果参数字符串不以“./“或”/“开头,则表示加载的是一个默认提供的核心模块(位于node的系统安装目录中),或者一个位于各级node_modules目录的已安装模块(全局安装或局部安装)
3.通过入口文件加载
require方法可以通过入口文件,加载整个目录
package.json文件中将入口文件写入main字段
package.json
{“name”:”your-name”,”main”:”a.js”}
如果找不到则会加载该目录下的index.js文件或者index.node文件
4.删除会缓存模块
所有缓存的模块保存在require.cache之中,如果想删除模块的缓存,可以像下面这样写
删除缓存
删除缓存
5.检查是否是主模块
检查主模块
6.在node中,可以使用函数来查询某个模块完成绝对路径的文件名
查询模块绝对路径文件名
7.require.main
判断模块是直接执行,还是被调用执行
直接执行的时候(node module.js),require.main属性指向模块本身
require.main == module // true
8.module
每个模块内部都有一个module对象,代表当前模块,他有以下属性
module.id 模块的识别符,通常是带有绝对路径的模块文件名。
module.filename 模块的文件名,带有绝对路径。
module.loaded 返回一个布尔值,表示模块是否已经完成加载。
module.parent 返回一个对象,表示调用该模块的模块。
module.children 返回一个数组,表示该模块要用到的其他模块。
module.exports 表示模块对外输出的值。
module.exports属性表示当前模块对外输出的接口,其他文件加载该模块,实际上就是读取module.exports变量。
exports变量指向module.exports
等同在每个模块头部,有一行这样的命令
var exports = module.exports;
exports与module.exports的区别
如果一个模块的对外接口,就是一个单一的值,不能使用exports输出,只能使用module.exports输出
评论前必须登录!
注册