文章目录
- 包含
- Buffer
- 概述
- 创建
- 操作
- 软件运行过程
- 线程与进程
- fs模块
- 写入文件
- 追加
- 流式写入
- 使用场景
- 读取文件
- 文件流式读取
- 读取场景
- 复制案例
- 内存占有量
- 重命名和移动
- 删除
- 文件夹操作
- 创建
- 读取
- 删除
- 查看文件的资源
- 相对路径bug
- path模块
- http协议
- 创建http服务器x`
- 获取请求体
- 获取请求报文
- 案例
- 设置响应报文
- 练习
- 网页资源加载
- 静态资源和动态资源
- 搭建静态资源服务
- 静态资源目录或网站根目录
- 网页路径
- 绝对路径
- 相对路径
- 使用场景
- MIME类型
- 获取文件后缀名并设置
- 乱码
- 完善错误处理
- Get与post
- 模块化
- 介绍
- 导入与暴露
- 暴露
- 导入
- 总结
- 导入模块
- 导入模块基本流程
- 总结
- 包管理工具npm
- 注意事项
- 搜索包
- require导入包
- 生产环境和开发环境
- 全局安装
- 不支持nodemon时
- 安装所有包
- 安装指定包和删除
- 配置命令别名
- cmpm
- 配置cnpm
- yarn
- npm和yarn的选择
- 发布、更新和删除一个包
- 拓展介绍
- nvm介绍
- express框架
- 使用
- 获取请求参数
- 响应设置
- 中间件
- 使用
- 静态资源中间件
- 注意事项
- 使用body-parser
- formidable
- 防盗链
- 实践
- 路由模块化
- 模板引擎ejs
- 使用
- 列表渲染
- ejs条件渲染
- express中使用ejs
- express-generator的使用
- 文件上传
- 案例
- MongoDB
- 核心概念
- 下载与安装
- 命令(了解)
- 文档
- mongoose
- 使用
- 插入文档
- 字段类型
- 字段验证
- 数据操作
- 条件控制
- 个性化读取
- 模块化
包含
Buffer
概述
创建
alloc 是创建内存空间,并赋值为0
allocUnsafe 也是创建空间,但是可能会有前面的遗留数据,也更快
from 将内容转换为2进制存入,在显示的时候,显示的是16进制。
操作
修改,和读取,
toString(2)是2进制
toString()转字符串
一个字占三个字节
软件运行过程
线程与进程
fs模块
写入文件
写入是异步的
同步
追加
异步和同步
换行
流式写入
打开一个通道,提高效率
使用场景
读取文件
文件流式读取
是一块一块的读,读出来的是buffer数据,提高效率
读取场景
复制案例
更好
内存占有量
重命名和移动
删除
文件夹操作
创建
读取
删除
查看文件的资源
相对路径bug
相对路径会跟着命令行路径走
解决:这个__irname是表示当前的路径
path模块
标红的错的
http协议
创建http服务器x`
header.host 就只获取header
获取请求体
了解即可
获取请求报文
建议用实例URL包
拼接成网址就好了
案例
设置响应报文
设置,相同响应属性,不同响应值的,用数组即可,用了write就不用用end了
练习
从其他地方读取数据,再渲染
网页资源加载
错误的,只要访问资源,都是执行这个回调函数
获取不同的资源,就要判断是什么资源
静态资源和动态资源
搭建静态资源服务
静态资源目录或网站根目录
根目录可以根据自己的需要调整,如,vscode是以打开的目录为根目录。
网页路径
绝对路径
相对路径
使用场景
MIME类型
媒体类型
获取文件后缀名并设置
要导入path模块
乱码
meta的编码的优先级会**<**响应头的编码
只设置html的
完善错误处理
判断请求方法
Get与post
模块化
介绍
导入与暴露
暴露
module.exports是属性
exports是一个独立的变量
导入
对应第一个暴露
对应第二个暴露
和之前一样
总结
exports与module.exports指向相同的地址={},
require是返回的module.exports的值,如果,exports=value则改变了exports的地址,如果时exports.xxx,则是给对象添加东西 ,而module.exports还是={}不变,当module.exports=value时,就可以直接返回。
所以exports =value不行。
导入模块
写相对路径更好,再fs模块用绝对路径更好
JSON与js文件名相同,优先导入js文件
不知道是什么文件的,会默认为js文件导入
导入模块基本流程
这个会输出,本文件的函数
伪代码
缓存的不是module.exports ,这个只是为了方便写
只执行一次,因为后面那个直接调用的时缓存
总结
包管理工具npm
注意事项
搜索包
require导入包
都行
生产环境和开发环境
全局安装
nodemon改了代码后不用让node.js重启了
局部安装,要用require导入,在package.json包中有显示,
全局使用,直接在命令行使用,包的位置也不一样
查看全局包的位置
不支持nodemon时
或者在vscode中用cmd终端运行。
安装所有包
根据包的依赖文件,用于在网上克隆项目后,直接下载所以依赖包
安装指定包和删除
配置命令别名
在scripts
后面时别名
npm run xxx 或者npm xxx
cmpm
建议了解
配置cnpm
建议配置,会快些
镜像地址
yarn
npm i 可以用yarn
需要改环境变量
npm和yarn的选择
不要混用
发布、更新和删除一个包
了解
拓展介绍
nvm介绍
管理node版本管理的工具
express框架
express是路由
使用
上面都不能的,最下面那个接着
获取请求参数
响应设置
中间件
相当于检票,一个车站有很多检票的
使用
就是访问日志,全局
next()就是调用回调函数
局部路由中间件
静态资源中间件
设置静态资源路径
注意事项
越上面的越能匹配
使用body-parser
响应一个表单
执行了中间件后,就会生成body
formidable
处理文件请求
防盗链
比如 复制网上的图片的地址,将它粘贴到Img标签中,有些可以展示,有些不可以展示。不可以展示的就是使用了防盗链。只允许某个网址访问,其他网址不能访问。
实践
路由模块化
模板引擎ejs
分离js和html
使用
列表渲染
分开的
ejs条件渲染
也可以分开
express中使用ejs
express-generator的使用
文件结构
文件上传
文件上传必须属性
案例
去掉点点,他就会和网址直接拼接,不会被路由所影响
已经配置了body包了
使用lowdb
获取信息
删除
MongoDB
核心概念
下载与安装
安装路径自己决定,启动服务,去mongodb的bin目录,数据库端:mongod启动,客户端时mongo启动
命令(了解)
不能选中数据库的字母,选中了按回车就可以了
这样可以不用替换完
文档
如果被删除了会有标记is_deleted:true
mongoose
用代码操作
操作mongo数据库的
使用
open用once绑定事件,只连接一次
插入文档
约束属性值
字段类型
字段验证
数据操作
条件控制
个性化读取
模块化
再拆