node.js

文章目录

  • 包含
  • 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
    • 使用
    • 插入文档
    • 字段类型
    • 字段验证
    • 数据操作
    • 条件控制
    • 个性化读取
    • 模块化

包含

node.js_第1张图片

Buffer

概述

在这里插入图片描述
node.js_第2张图片

创建

alloc 是创建内存空间,并赋值为0
allocUnsafe 也是创建空间,但是可能会有前面的遗留数据,也更快
from 将内容转换为2进制存入,在显示的时候,显示的是16进制。

node.js_第3张图片

操作

修改,和读取,
toString(2)是2进制
toString()转字符串
node.js_第4张图片
一个字占三个字节

node.js_第5张图片

软件运行过程

node.js_第6张图片

线程与进程

node.js_第7张图片

fs模块

写入文件

写入是异步的
node.js_第8张图片
同步
在这里插入图片描述

追加

异步和同步
node.js_第9张图片

node.js_第10张图片
换行
node.js_第11张图片

流式写入

打开一个通道,提高效率
node.js_第12张图片

使用场景

在这里插入图片描述

读取文件

在这里插入图片描述
node.js_第13张图片

文件流式读取

是一块一块的读,读出来的是buffer数据,提高效率
node.js_第14张图片

读取场景

node.js_第15张图片

复制案例

node.js_第16张图片

更好
node.js_第17张图片

内存占有量

在这里插入图片描述
在这里插入图片描述

重命名和移动

node.js_第18张图片

删除

node.js_第19张图片

文件夹操作

创建

node.js_第20张图片

node.js_第21张图片

读取

node.js_第22张图片

删除

node.js_第23张图片
node.js_第24张图片

查看文件的资源

node.js_第25张图片

node.js_第26张图片

相对路径bug

相对路径会跟着命令行路径走
node.js_第27张图片
解决:这个__irname是表示当前的路径
node.js_第28张图片

path模块

在这里插入图片描述
标红的错的
node.js_第29张图片

http协议

node.js_第30张图片
node.js_第31张图片
node.js_第32张图片
node.js_第33张图片
node.js_第34张图片
在这里插入图片描述

创建http服务器x`

node.js_第35张图片
node.js_第36张图片

node.js_第37张图片
header.host 就只获取header

获取请求体

了解即可
node.js_第38张图片
node.js_第39张图片

获取请求报文

建议用实例URL包
node.js_第40张图片
拼接成网址就好了

node.js_第41张图片
node.js_第42张图片

案例

node.js_第43张图片

设置响应报文

设置,相同响应属性,不同响应值的,用数组即可,用了write就不用用end了

node.js_第44张图片

练习

从其他地方读取数据,再渲染
node.js_第45张图片

网页资源加载

错误的,只要访问资源,都是执行这个回调函数
node.js_第46张图片

获取不同的资源,就要判断是什么资源
node.js_第47张图片

静态资源和动态资源

node.js_第48张图片

搭建静态资源服务

node.js_第49张图片
node.js_第50张图片

静态资源目录或网站根目录

根目录可以根据自己的需要调整,如,vscode是以打开的目录为根目录。
node.js_第51张图片

网页路径

绝对路径

node.js_第52张图片

相对路径

node.js_第53张图片

使用场景

node.js_第54张图片

MIME类型

媒体类型
node.js_第55张图片

获取文件后缀名并设置

要导入path模块
node.js_第56张图片
node.js_第57张图片

乱码

meta的编码的优先级会**<**响应头的编码
只设置html的
node.js_第58张图片

完善错误处理

node.js_第59张图片

判断请求方法
node.js_第60张图片

Get与post

node.js_第61张图片
node.js_第62张图片

模块化

介绍

node.js_第63张图片

导入与暴露

暴露

module.exports是属性
exports是一个独立的变量
在这里插入图片描述
node.js_第64张图片
node.js_第65张图片

导入

对应第一个暴露
node.js_第66张图片
对应第二个暴露
node.js_第67张图片
和之前一样
node.js_第68张图片

总结

node.js_第69张图片
exports与module.exports指向相同的地址={},
require是返回的module.exports的值,如果,exports=value则改变了exports的地址,如果时exports.xxx,则是给对象添加东西 ,而module.exports还是={}不变,当module.exports=value时,就可以直接返回。
所以exports =value不行。

导入模块

写相对路径更好,再fs模块用绝对路径更好
JSON与js文件名相同,优先导入js文件
不知道是什么文件的,会默认为js文件导入

node.js_第70张图片

导入模块基本流程

node.js_第71张图片
这个会输出,本文件的函数
在这里插入图片描述
伪代码

node.js_第72张图片
node.js_第73张图片
缓存的不是module.exports ,这个只是为了方便写
在这里插入图片描述

node.js_第74张图片
只执行一次,因为后面那个直接调用的时缓存

总结

node.js_第75张图片

包管理工具npm

node.js_第76张图片
node.js_第77张图片
在这里插入图片描述

node.js_第78张图片

注意事项

node.js_第79张图片

搜索包

node.js_第80张图片

require导入包

都行
node.js_第81张图片

在这里插入图片描述

生产环境和开发环境

node.js_第82张图片

全局安装

nodemon改了代码后不用让node.js重启了
node.js_第83张图片
局部安装,要用require导入,在package.json包中有显示,
全局使用,直接在命令行使用,包的位置也不一样
查看全局包的位置
在这里插入图片描述

不支持nodemon时

node.js_第84张图片
或者在vscode中用cmd终端运行。

安装所有包

根据包的依赖文件,用于在网上克隆项目后,直接下载所以依赖包
node.js_第85张图片

安装指定包和删除

node.js_第86张图片

配置命令别名

在scripts
后面时别名
npm run xxx 或者npm xxx
在这里插入图片描述

cmpm

建议了解
node.js_第87张图片

配置cnpm

建议配置,会快些
node.js_第88张图片
镜像地址
node.js_第89张图片
在这里插入图片描述

yarn

node.js_第90张图片
npm i 可以用yarn
node.js_第91张图片
node.js_第92张图片
需要改环境变量
在这里插入图片描述

npm和yarn的选择

不要混用
node.js_第93张图片

发布、更新和删除一个包

了解
node.js_第94张图片
node.js_第95张图片

拓展介绍

node.js_第96张图片

nvm介绍

管理node版本管理的工具
在这里插入图片描述
node.js_第97张图片

express框架

express是路由
node.js_第98张图片
node.js_第99张图片

使用

node.js_第100张图片
上面都不能的,最下面那个接着
node.js_第101张图片

获取请求参数

node.js_第102张图片
node.js_第103张图片

响应设置

node.js_第104张图片

中间件

相当于检票,一个车站有很多检票的
node.js_第105张图片

使用

就是访问日志,全局
next()就是调用回调函数
node.js_第106张图片

局部路由中间件
node.js_第107张图片

静态资源中间件

设置静态资源路径
node.js_第108张图片

注意事项

越上面的越能匹配
node.js_第109张图片

使用body-parser

响应一个表单
node.js_第110张图片
node.js_第111张图片
执行了中间件后,就会生成body
node.js_第112张图片

formidable

处理文件请求
在这里插入图片描述
node.js_第113张图片
在这里插入图片描述

防盗链

比如 复制网上的图片的地址,将它粘贴到Img标签中,有些可以展示,有些不可以展示。不可以展示的就是使用了防盗链。只允许某个网址访问,其他网址不能访问。

实践

node.js_第114张图片

路由模块化

node.js_第115张图片

模板引擎ejs

分离js和html
node.js_第116张图片

使用

node.js_第117张图片

列表渲染

node.js_第118张图片
分开的
node.js_第119张图片

ejs条件渲染

也可以分开
node.js_第120张图片

express中使用ejs

node.js_第121张图片

express-generator的使用

文件结构

node.js_第122张图片

文件上传

文件上传必须属性
node.js_第123张图片

案例

node.js_第124张图片
去掉点点,他就会和网址直接拼接,不会被路由所影响
在这里插入图片描述
node.js_第125张图片
已经配置了body包了
在这里插入图片描述
使用lowdb
node.js_第126张图片
node.js_第127张图片

node.js_第128张图片
获取信息
node.js_第129张图片
删除
node.js_第130张图片

MongoDB

node.js_第131张图片
node.js_第132张图片

核心概念

node.js_第133张图片

下载与安装

安装路径自己决定,启动服务,去mongodb的bin目录,数据库端:mongod启动,客户端时mongo启动
node.js_第134张图片

命令(了解)

不能选中数据库的字母,选中了按回车就可以了
node.js_第135张图片
node.js_第136张图片
node.js_第137张图片
这样可以不用替换完
在这里插入图片描述

文档

如果被删除了会有标记is_deleted:true

mongoose

用代码操作
操作mongo数据库的

在这里插入图片描述

使用

open用once绑定事件,只连接一次
node.js_第138张图片
node.js_第139张图片
node.js_第140张图片

插入文档

约束属性值

node.js_第141张图片
node.js_第142张图片

字段类型

node.js_第143张图片

字段验证

node.js_第144张图片

数据操作

node.js_第145张图片
node.js_第146张图片
node.js_第147张图片
在这里插入图片描述
在这里插入图片描述
node.js_第148张图片
node.js_第149张图片

条件控制

node.js_第150张图片
node.js_第151张图片
node.js_第152张图片

个性化读取

node.js_第153张图片
node.js_第154张图片

模块化

node.js_第155张图片
node.js_第156张图片
再拆
node.js_第157张图片
node.js_第158张图片
node.js_第159张图片

你可能感兴趣的:(node.js)