一、模块:模块是一个独立的功能体。
1.在nodejs下模块分为核心模块、自定义模块、第三方模块
2.在nodejs下每一个文件(包括目录)都可以称为模块
3.在nodejs下,任意一个脚本文件都自动被一个构造函数所包含
(function(exports,require,module,__filename,__dirname){
//程序员编写的代码
})
__filename:当前模块(文件)的绝对路径和名称
__dirname:当前模块(文件)的绝对路径
require:用于引入一个模块,模块前需要加路径require(‘xxx.js’);如果模块后缀名是js则可以省略
module:指当前模块
module.exports:当前模块的导出对象,可以供其他模块使用的属性的方法
exports:等价于module.exports
|
4.模块的分类
|
以路径开头
|
不以路径开头
|
文件模块
|
require(‘./xxx’),常用语用户自定义的模块,如果后缀为js,则可以省略
|
require(‘querstring’)常用于引入官方提供的核心模块
|
目录模块
|
require(‘./xxx’),会在目录xxx下自动寻找package.json中main属性对应的文件,如果没有则会自动引入index.js
|
require(‘xxx’),要求引入的目录下的node_modules中,如果没有则会到上一级目录下寻找,知道顶层,常用语第三方模块
|
5.核心模块
5.1查询字符串模块-querystring
在URL中问号后的部分就是查询字符串
parse() 将查询字符串解析为对象
Stringify() 将对象格式转为查询字符串
5.2URL模块
parse() 将一个完整的URL解析为对象
protocol 协议
hostname 主机名称(域名/IP地址)
port 端口
pathname 文件在服务器上的路径
query 查询字符串
hash 获取哈希(当前页面跳转)部分
format() 将对象格式化为URL
query 属相对应的值要求是对象
//引入查询字符串模块
const querystring = require('querystring');
//引入URL对象
const url = require('url');
var str = 'http://xxxx';
//将url解析为对象
var obj = url.parse(str);
//console.log(obj);
//获取查询字符串
var qs = obj.query;
//将查询字符串解析为对象
var obj2 = querystring.parse(qs);
console.log(obj2.course,obj2.cid);
|
6.文件系统模块-fs
对比同和异步的区别?
同步会阻止后续代码的执行,只有方法执行完才会继续执行后边的代码,是通过方法返回值来获取结果
异步不会阻止后续代码的执行,把执行放到事件队列中执行,在所有主线程代码执行完才会执行事件队列的内容,是通过回调函数来获取结果
6.1创建目录
mkdir(路径,回调函数) / mkdirSync(路径)
6.2读取目录
readdir(路径,回调函数) / readdirSync(路径)
6.3移除目录
rmdir(路径,回调函数) / statSync(路径)
6.4查看文件的状态
stat(路径, 回调函数) / statSync(路径)
6.5清空写入文件(创建文件)
writeFile(路径, 数据, 回调函数)/writeFileSync(路径, 数据)
6.6追加写入文件(创建文件)
appendFile(路径, 数据, 回调函数)/appendFileSync(路径,数据)
6.7读取文件
readFile(路径, 回调函数)/readFileSync(路径)
6.8删除文件
unlink(路径, 回调函数)/unlinkSync(路径)
6.9判断文件(目录)是否存在
existsSync(路径)
eg:计数器:判断文件num.txt是否存在,如果不存在则创建创建,并存储值0,;从num.txt中读取数字,然后再加1,打印出来;把加1后的结果再次写入到num.txt中。

- 1 const fs = require('fs');
- 2 function show(){
- 3 if(!fs.existsSync('num.txt')){
- 4 fs.writeFileSync('num.txt',0);
- 5 console.log('创建新文件成功');
- 6 }else{
- 7 var res = fs.readFileSync('num.txt');
- 8 var num = parseInt(res);
- 9 num+=1;
- 10 fs.writeFileSync('num.txt',num);
- 11 console.log(num);
- 12 }
- 13 }
- 14 show();
View Code