Node.js自动为每个文件添加了一个构造函数
(function (exports,require,module,__filename,__dirname){ //程序员写的代码 } ) |
exports——导出的对象
require()——是一个函数,用于引入其他的模块
module——当前的模块对象
module.exports——导出的对象,和exports两者指向同一个对象;这个是真正的导出对象
__filename——当前模块的绝对路径和模块名称
__dirname——当前模块的绝对路径
1. 模块分类
模块分为自定义模块、核心模块、第三方模块。
引入模块方法:
文件模块 | 目录模块 | |
以路径开头 |
require('./circle.js') 常用于引入自定义模块 |
require('./02_ran') 会到目录下寻找package.json中main属性对应的文件,如果找不到则引入index.js |
不以路径开头 | require('querystring') 常用于引入官方提供的核心模块 |
require('./04_2') 会到当前目录下的node_modules中寻找,如果找不到会一直往 上一级寻找,知道顶级盘符目录,常用于引入第三方模块 |
2. 查询字符串模块——querystring
查询字符串是浏览器向web服务器请求传递数据的一种方式,位于URL中。查询字符串模块是用于处理和解析查询字符串的。
parse()——将查询字符串解析为对象
例:获取以下查询字符串中的数据wd=china&place=beijing
//引入查询字符串模块(安装node.js后就会存在) const querystring=require('querystring'); //查询字符串 let str='wd=china&place=beijing'; //使用查询字符串模块解析为对象 let obj=querystring.parse(str); console.log(obj.wd,obj.place);
3. URL模块
URL: 统一资源定位
http://www.codeboy.com:9999/admin/login.html?uname=root 协议 域名/IP地址 端口号 文件的路径 查询字符串 |
parse()——将URL解析为对象,得到各个部分
//引入核心模块URL const url=require('url'); let str='http://www.codeboy.com:9999/admin/login.html?uname=root'; //解析URL为对象 let obj=url.parse(str); console.log(obj);
结果为:
4. 定时器模块
(1)一次性定时器
let timer=setTimeout(回调函数,间隔时间);//开启 当间隔时间到了,会执行1次回调函数;单位是毫秒 clearTimeout(timer); //清除 |
(2)周期性定时器
let timer=setInterval(回调函数,间隔时间); //开启 每隔一段时间,执行一次; clearInterval(timer); //清除 |
(3)立即执行定时器
let timer=setlmmediate(回调函数); 把回调函数放在事件队列的最前面执行,当主程序执行完就会执行事件队列中的回调函数 clearImmediate(timer); |
process.nextTick(回调函数) 把回调函数放在事件队列之前,主程序的后边执行 |
事件队列:用于放置一组回调函数,当主程序执行完以后,排队执行。 |