复习:
全局对象——nodejs(global),JavaScript(window)
console对象
log/info/warn/error/time(‘loop-for’)/timeEnd(‘loop-for’)
process对象
arch/platform/version/versions/env/pid/kill…
全局函数
一次性定时器 timer=setTimeout(()=>{},3000)/clearTimeout(timer)
周期性定时器 setInterval()/clearInterval()
process.nextTick(()=>{ })
setImmediate(()=>{})/clearImmediate()
同步和异步
异步非等待 同步等待
模块
文件模块(js文件),文件作用域
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镜像 使用CNPM命令,需要单独安装
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