前端核心技术体系
Node.js定义
Nodejs的作用
1.开发服务器应用
2.开发工具类应用
3.开发桌面端工具
Nodejs的下载与安装
1.nodejs.org
download
选择LTS版本
2.CNPM Binaries Mirror (npmmirror.com)https://registry.npmmirror.com/binary.html?path=node/
node的各个版本,是淘宝的径向
3.检验是否下载完成
打开命令行窗口
输入
node -v
注意空格
Nodejs入门
命令行工具
命令的结构
常用命令
d:
切换盘
dir
查看盘中文件夹
cd 文件夹名
切换工作目录
. 当前目录
.. 上一级目录
dir /s
展示该盘符下所有文件夹 包括子级文件夹
nodejs注意点
global顶级对象
Buffer
buffer创建
buffer就是一段字节空间 开辟的是固定计算机内存
会用于处理二进制数据
alloc(n)创建一个n字节的Buffer 开辟多少个字节的空间会将buffer的原始数据清零后进行输入,
allocUnsafe(n)所创建的Buffer可能会包含旧的内存数据 这种方式创建Buffer更快
from会将传入的字符串或数组按照Unicode码表(完全兼容ASCLL码表)中的数字再转化为二进制存入Buffer
Buffer操作
与注意事项
计算机程序运行过程
进程 进行中的程序 任务管理器中所显示正在运行的程序
线程
线程属于进程
进程包含线程
fs模块(fsapi)
file system
1.导入fs模块
2.写入文件
fs工作的两种模式:同步与异步
fs异步API
fs.writeFile
写入文件执行回调函数同时进行下一步的js代码 效率较高
fs.writeFileSync同步API 等文件写入后才会进行下一步js代码 顺序性较强
fs追加
appendFile
appendFileSync
追加也可以通过
writeFile的第三个参数对象实现追加文本
fs.writeFileSync('./text.txt','\r\n拉西呀懦夫',{flag:'a'});
writeFile 与 appendFile 的前两个参数必写,是 文本地址和写入内容
{‘a’,‘b’,[{配置对象}],[function(){}]}
function(){} 通常为err=>{} 此时如果执行失败err返回值是一个错误对象,,执行成功是null
配置对象写为flag:'a'
也可以实现追加写的效果
fs流式写入
文件写入应用场景
fs文件读取
callback函数有两个形参
读取文件应用场景
流式读取
fs练习 实现文件复制
方式一 :通过readFile实现读取文件
方式二 :流式操作
第二种方法相对于较大空间的文件运行时占用内存更少
fs文件重命名与移动
fs文件删除
fs文件夹操作
readdir(path,(err,date)=>{})
date返回的是文件夹内的文件名称数组
fs查看资源状态
fs路径
fs相对路径的bug
__dirname
批量重命名
对文件夹内文件首位数字进行重命名
path模块
resolve 解决绝对路径拼接问题
HTTP协议
HTTP报文
就是服务器与浏览器之间相互传送的文件
浏览器通过请求报文向服务器发起请求
fiddler
请求报文基本组成
url
HTTP响应报文
IP
ip本身就是数字标识
用来标志网络设备实现设备间通信
ip分类
局域网ip可以进行复用
端口
http模块
创建HTTP服务端
1. 导入模块2.创建服务对象
createServer内部函数有两个形参 一个 request 请求 请求报文的封装对象
response 响应 响应报文的封装
内部回调函数
3.
HTTP服务注意事项
浏览器查看http报文
如何查看请求体
点击提交会向端口发送post请求
并把信息放在请求体当中 传递给服务器
在网络 处点击文档后
点击负载 内可以查看请求体
也可以在载荷处快速查看url当中查询字符串内容
如何查看响应结果
响应头在f12 文件 处 标头 响应标头列出的即为响应头
点击查看源代码
第一行 是响应行
下面是响应头
f12 文件 处 响应 为响应体原始内容
提取http请求报文
敲下回车后,请求报文就从浏览器端发送到端口
服务对象的回调函数处理请求报文
若要获取请求报文里面的内容 则应将 获取代码放在回调函数里面
提取请求体
提取报文的请求体
获取url路径和查询字符串
导入http模块
1.导入url模块
创建服务对象
url.parse(url的字符串,【】)
第二个参数如果是true
呢么query属性将会设置为对象
提取url路径和查询字符串的另外一种方式
获取url路径
url.pathname
获取查询字符串
url.searchParams.get('keyword');
http请求练习
注意:结构赋值的参数命名不可以有大写字母
设置http响应报文
response.statusCode = ;
设置响应行上的响应状态码
仅且只能有一个end方法执行 必须有一个
HTTP响应练习
练习优化
通过fs读取html文件
网页资源加载基本过程
响应练习拓展
实现网页引入外部资源
静态资源与动态资源
搭建静态资源服务
静态资源目录与网页根目录
网页中的URL-绝对路径 相对路径
./ 当前层级
相对路径不可靠,开发中不常用
设置MIME类型
解决乱码问题
也可以在html的meta标签内写 charset
但响应头的优先级更高
一般的文件只有页面设置字符
完善错误处理
请求方法的错误