文章目录
Nodejs
简单介绍
什么是node.js?
基于ChromeV8引擎的JavaScript运行环境,
安装后尽量将这两个文件夹配置在目录及父目录没有空格的地方
修改可以通过npm config edit
找到配置项配置
什么是终端?
在Node.js环境中执行JavaScript代码
打开终端
node 要执行的js文件路径
fs文件系统模块
读取文件
格式
为null表示没有错误信息,读取成功!!!
写入文件
为null表示没有错误信息,写入成功!!!
路径动态拼接
出现路径拼接问题,是因为使用了相对路径,解决是使用绝对路径即可。
__dirname
表示当前文件所处的目录
Path路径模块
../
会抵消路径
例如fs.readFile()可以这样写,不要使用+可能会导致问题
获取文件名
示例
传第二个参数表示只获取文件名称不获取文件扩展名
获取文件扩展名
Http模块
服务器相关概念
域名和域名服务器
端口号
创建基本的web服务器
步骤一
步骤2
步骤3
步骤4
创建!
使用node xx.js
运行js文件
const http = require('http')
const server = http.createServer()
server.on('request',function(req,res){
console.log('服务器被请求')
})
server.listen(80,function(){
console.log('服务器80已经启动!')
})
req请求对象
请求
req.url是端口号后面的字符串
响应
解决乱码问题
写完记得重启服务器
动态响应
模块化
什么是模块化?
模块化规范
模块分类
模块加载
省略.js
等文件后缀名也可以正常引入(自动补全)
模块作用域
好处
防止了全局变量污染的问题
module对象
module.exports对象
使用module.exports共享成员
随后,我们就可以获取我们引入的方法
exports对象
使用误区:
npm与包
地址:
[https://www.npmjs.com/]
npm初体验
安装包
注意点
安装指定版本
包管理配置文件
多人协作的问题
快速创建package.json
dependencies节点
可以通过
一次性安装所有包
卸载包
devDependencies节点
--save-dev简写为-D的写法
npm i xx yy
空格隔开安装多个包
–save 等同于 -S (常用,可保存在package.json文件中),
-S, --save 安装包信息将加入到dependencies(生产阶段的依赖,也就是项目运行时的依赖,就是程序上线后仍然需要依赖)
下载速度慢
默认使用国外服务器
nrm
包的分类
两类:
- 项目包
- 全局包
现npm i 包名 -S与什么都不加类似
全局包
i5ting_toc
-o转换完成后默认浏览器打开
规范
开发自己的包
ES6
说明文档
发布包
注册npm账号
在终端中登录
npm login
npm publish
删除已经发布的包
npm unpublish 包名 --force
命令
如何更新?
更新版本:
1.先把.json文件里面的版本号修改
2.再继续使用上传命令: npm publish
3.这样就ok了
模块的加载机制
Express
什么是express
Epress能做什么
创建web服务器
基本使用
所有请求
app.all(...)
监听Get请求
监听Post请求
响应给客户端
获取参数
获取动态参数
注意点:
- 名称自己随便起
- 可以有多个
静态资源处理
nodemon
为什么
Epress路由
路由示例
示例
模块化路由
示例
Express中间件
格式
next函数
中间件初体验
全局生效中间件
使用app.use(…)
简化方式
作用
多个中间件
局部生效中间件
多个局部中间件
中间件注意事项
中间件分类
应用级别的中间件
路由级别的中间件
错误级别的中间件
Express内置中间件
第三方中间件
自定义中间件
步骤
qs
node.js内置的querystring模块
封装为模块
使用Express写接口
跨域问题
使用cors中间件
注意在路由之前配置cors中间件
什么是cors
响应头部
简单请求
JSONP接口
如果有拦截需要/api
才能访问,记得拼接/api
网页中发起jsonp请求
Web开发模式
前后端分离
身份认证
Session
Cookie
作用
不具安全性
提高安全性
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-BP8dlDu8-1648214050356)(https://gitee.com/onlineshow/pic-go/raw/master/img/markdown/image-20220318220458491.png)]
session工作原理
在Express中使用Session认证
JWT认证机制
工作原理
组成部分
使用jwt
解密
express-jwt最新版本需要配置algorithms算法,一般默认是HS256,配置格式expressJWT({secret: secretKey, algorithms: [‘HS256’]})
MySQL
安装配置mysql
测试
操作数据库
返回数组对象
插入数据
affectedRows影响行数
快捷方式
便捷方式
标记删除