nodejs开发简易版微博
创建 Koa2 项目
1.项目1
2
3
4
5koa2 -e name (-e用ejs作为模版引擎)
npm i
npm run dev
2.环境变量,更新内容不需要重启服务1
2
3
4
5npm i cross-env
"dev": "cross-env NODE_ENV=dev ./node_modules/.bin/nodemon bin/www",
"prd": "cross-env NODE_ENV=production pm2 start bin/www",
ejs的使用
1 | 引入title参数 |
1 | 引入ejs组件 |
1 | if 判断 |
1 | 循环 |
mysql
查询语句
1 | 1.增 |
连接mysql
1 | seq.js |
创建模型
1 | const Sequelize = require('sequelize') |
添加数据
1 | const { User, Blog } = require('./model') |
查找数据
1 | const { Bolg, User } = require('./model') |
nodejs 调试
1 | "dev": "cross-env NODE_ENV=dev ./node_modules/.bin/nodemon --inspect=9229 bin/www" |
jwt
- jwt - json web token
- 用户认证成功之后,server 端返回一个加密的token给客户端
- 客户端后续每次请求都带token,以示当前用户的身份
1 | app.js |
1 | const jwt = require('jsonwebtoken') |
1 | 前端头部携带token |
ajv 数据校验规则
1 | npm i ajv |
1 | user.js |
1 | 中间件函数 |
图片上传
1 | npm i formidable-upload-koa fs-extra --save |
xss过滤
1 | 安装 |
PM2
PM2介绍
nodejs进程管理工具,可以利用它来简化很多node应用管理的繁琐任务,如性能监控、自动重启、负载均衡等,而且使用非常简单。
守护进程:服务挂掉自动重启
多进程:更好的利用CPU和内存
PM2 配置和使用
1 | 查看所有进程的列表 |
更好的利用内存和CPU
进程之间无法通讯,因此 redis mysql要用统一的服务
nginx 代理
nginx介绍
1.静态资源服务器
2.负载均衡
3.反向代理