day02
1.模块分类
文件模块,核心模块,第三方模块
带路径的文件模块
不带路径的文件模块——核心模块
带路径的目录模块
不带路径的目录模块
| 带路径的 | 不带路径的 |
文件模块 | require('./circle.js') 通常用于用户自定义的模块 | require('querystring') 用于官方定义的核心模块 |
目录模块 | require('./2') 在2这个目录下存在一个index.js文件或者使用package.json 声明main属性 | require('3') 要求把3目录放在node_modules中 通常用于第三方模块 |
2.包和npm
npm->node package manage 包管理工具
包:是一个目录模块,含有任意的js文件,含有package.json的包说明文件。
npm install cnpm ------global
npm install mysql ------>cnpm install mysql
下载包
npm install 包名称
3.Buffer对象
是global对象下的一个对象;用于将数据存储在缓冲区中,数据相对比较小
创建buffer
Buffer.alloc(参数1,[参数2]);
参数1设置缓冲区大小,参数2是缓冲区存储的值,格式是字符串
4.querystring 模块
查询字符串模块
parse 将查询字符串解析为对象
stringify 将对象转换为查询字符串
5.url模块
parse 将url解析为对象
format 将对象转换为url
6.fs模块
文件系统模块,可以实现对文件(目录)的操作(创建,写入,读取,删除......)
异步函数:非阻塞模式,是通过回调函数来获取结果——回调地狱
同步函数:阻塞模式,是通过函数的返回值来获取结果
stat/statSync 查看文件的状态
isFile() 查看状态是否为文件
isDirectory() 查看状态是否为目录
返回值都是布尔型
mkdir 创建目录
rmdir 删除目录
练习:检查目录'./mydir'的状态,如果不存在这个目录,尝试创建这个目录
readdir 读取目录,读取的结果是数组
readFile 读取文件,读取的结果是buffer数据,使用toString()转为普通的字符串
writeFile 写入文件,如果文件不存在则创建文件,如果文件存在,则清空文件内容
appendFile 追加写入文件,如果文件不存在则创建文件,如果文件存在,则在末尾写入
unlink 删除文件
练习:实现计数器功能,每运行一次,数字+1
①如果文件num.txt不存在,创建文件,写入1
②读取num.txt,把读取结果+1,并打印出来
③把+1的结果再次写入num.txt中——writeFile
课后任务:
(1)复习今天内容,整理思维导图
(2)课后作业:
获取url中查询字符串的值,并且把这些值写入str.txt中(如果不存在创建)
http://www.codebody.com/list.html? lid=10&pname=apple&price=5000
(3)http协议,预习express