### 開啟并監聽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方案、開發、聯調、測試、上線
技術方案:數據如何存儲、如何與前端對接,即接口設計