1. 使用koa2 和 express 对比
- express中间件是异步回调,koa2原生支持async/awit
- 新开发的框架和系统,都开始基于koa2,例如ess.js
- express虽然为过时,但是koaw肯定是未来趋势
2. 介绍async/await
1. await 后面可以追加 promise 对象,获取resolve 的值
2. await 必须包裹在 async 函数里面
3. async 函数执行返回的也是一个promise
4. try-catch 截获Promise 中的reject 的值
3. 介绍koa2
- 安装(使用脚手架)
- npm install -g koa-generator
- Koa2 koa2–test
- npm install & npm run dev
- 初始化代码,处理路由
- 使用中间件
3.1 实现session
- 和express 类似
- 基于koa-generic-session 和 koa-redis
cnpm i koa-generic-session koa-redis redis --save
3.2 开发路由
- 复用之前代码,如mysql,登录中间件,controller,model
- 初始化路由,前端联调
cnpm i mysql xss --save
3.3 日志
- access log 记录,使用morgan
npm i koa-morgan --save
- 自定义日志使用console.log 和 console.error
- 日志拆分、日志内存分析
4. 中间件原理分析
- 洋葱圈模型
- Request —> Response
- 分析
- app.use 用来注册中间件,先收集起来
- 实现next机制,即上一个next触发下一个
- 不涉及method 和 path 判断
5. 进程守护 pm2
PM2是node进程管理工具,可以利用它来简化很多node应用管理的繁琐任务,如性能监控、自动重启、负载均衡等,而且使用非常简单。
- node app.js 和 nodemon app.js 进程崩溃则不能访问
- pm2 遇到进程崩溃,会自动重启
- pm2需要全局安装
npm install -g pm2
5.1 常用配置 pm2
- 新建pm2 配置文件(包括进程数量,日志文件目录等)
- 修改pm2 启动命令,重启
- 访问server, 检查日志文件的内容(日志记录是否生效)
5.2 pm2 常用命令
- 启动进程/应用
pm2 start bin/www 或 pm2 start app.js
- 重命名进程/应用
pm2 start app.js --name wb123
- 添加进程/应用
watch pm2 start bin/www --watch
- 结束进程/应用
pm2 stop www
- 结束所有进程/应用
pm2 stop all
- 删除进程/应用
pm2 delete www
- 删除所有进程/应用
pm2 delete all
- 列出所有进程/应用
pm2 list
- 查看某个进程/应用具体情况
pm2 describe www
- 查看进程/应用的资源消耗情况
pm2 monit
- 查看pm2的日志
pm2 logs
- 若要查看某个进程/应用的日志,使用
pm2 logs www
- 重新启动进程/应用
pm2 restart www
- 重新启动所有进程/应用
pm2 restart all
6. 多进程
- 为什么使用多进程
- 操作系统会限制一个进程的最大可用内存
- 内存:无法充分利用机器的全部内存
- CPU:无法充分利用多核CPU的优势
- 多进程redis
- 多进程之间,内存无法共享
- 多进程访问一个redis,实现数据共享
7. 上线与配置总结
-
服务器运维,一般由专业的OP人员和部门来处理
-
大公司都有自己的运维团队
-
中小型工期推荐使用一些云服务,如华为云的node平台
-
pm2的核心价值 进程守护
-
pm2的常用命令和配置,日志记录
-
多进程
koa2_blogs
项目来源于imooc.com 前端晋升全栈工程师必备课程 Node.js 从零开发web server博客项目 coding.imooc.com/learn/list/…
- 仅供学习参考交流使用。
学会node.js,晋升全栈工程师
免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://itzsg.com/9834.html