文章目录
Nodejs
简单介绍
什么是node.js?
基于ChromeV8引擎的JavaScript运行环境,
安装后尽量将这两个文件夹配置在目录及父目录没有空格的地方

修改可以通过npm config edit找到配置项配置

在Node.js环境中执行JavaScript代码
打开终端
node 要执行的js文件路径

fs文件系统模块
读取文件


格式



为null表示没有错误信息,读取成功!!!
写入文件

为null表示没有错误信息,写入成功!!!
路径动态拼接

出现路径拼接问题,是因为使用了相对路径,解决是使用绝对路径即可。
__dirname表示当前文件所处的目录
Path路径模块

../会抵消路径

例如fs.readFile()可以这样写,不要使用+可能会导致问题

获取文件名


传第二个参数表示只获取文件名称不获取文件扩展名
获取文件扩展名

Http模块



服务器相关概念



域名和域名服务器



创建基本的web服务器



创建!

使用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节点
可以通过
npm i xx yy空格隔开安装多个包

一次性安装所有包


devDependencies节点

--save-dev简写为-D的写法

下载速度慢
默认使用国外服务器




包的分类
两类:
- 项目包
- 全局包



i5ting_toc

-o转换完成后默认浏览器打开
规范


开发自己的包



ES6


说明文档

发布包
注册npm账号
在终端中登录

npm login

npm publish

npm unpublish 包名 --force命令


如何更新?
更新版本:
1.先把.json文件里面的版本号修改
2.再继续使用上传命令: npm publish
3.这样就ok了
模块的加载机制






Express
什么是express




创建web服务器

基本使用
app.all(...)




注意点:
- 名称自己随便起
- 可以有多个
静态资源处理






nodemon




Epress路由





模块化路由





Express中间件


中间件初体验

使用app.use(…)



局部生效中间件



中间件注意事项

中间件分类







自定义中间件



node.js内置的querystring模块


使用Express写接口




跨域问题


注意在路由之前配置cors中间件








简单请求



JSONP接口


如果有拦截需要/api才能访问,记得拼接/api



Web开发模式





身份认证



Session







提高安全性
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(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




返回数组对象

affectedRows影响行数



![..(img-KdBKtwrD-1648214050360)]](https://file.cfanz.cn/uploads/png/2022/03/26/1/aEB08I1cV4.png)










