### 开启并监听Node服务更改:supervisor
### Node服务
const Koa \= require('koa')
const Static \= require('koa-static-cache')
const Route \= require('koa-router')
const fs \= require('fs')
const app \= new Koa()
const route \= new Route
app.use( route.routes() )
app.listen(80, '0.0.0.0', () \=> {
console.log('Server start')
})
### Node中间件
1. koa-static-cache
2. koa-router
3. koa
#### 镜向地址:npm i lodash --save --registery=https://registry.npm.taobao.org
#### nvm:nodejs版本管理工具,切换多个node版本
#### ECMAScript:规定了JS语法的规范
1. JavaScript = ECMAScript + Web API
2. NodeJs = ECMAScript + Nodejs API
#### server开发和前端开发的区别
1. 服务稳定性:
1. server端可能会遭受各种恶意攻击和误操作
2. 单个客户端可以意外挂掉,但是服务端不能
3. PM2做进程守候
2. 考虑内存和CPU(优化,扩展)
1. server端要承载很多请求,CPU和内存都是稀缺资源
2. stream写日志,使用redis存session
3. 日志记录
1. 前端也会参与写日志,但只是日志的发起方,不关心后续
2. server端要记录日志、存储日志、分析日志
3. 多种日志记录方式
4. 安全
1. server端要随时准备接收各种恶意攻击,前端则少很多
2. 越权操作,数据库攻击等
3. 登录验证,预防xss攻击和sql注入,登录业界有统一的解决方案
5. 集群和服务拆分
1. 产品发展速度快,流量可能会迅速增加
2. 如何通过扩展机器和服务拆分来承载大流量
项目流程:目标、需求、技术方案、UI方案、开发、联调、测试、上线
技术方案:数据如何存储、如何与前端对接,即接口设计