section-cookie:
c->s seccion_id
s->c (seccion_id save in cookie)
c->s cookie:session_id
server.use(cookieParser({}))
req.cookies 接收
res.cookie(name,val,options) 發送
1.數據接收
req.query
bodyParser 普通post
multer 文件post
2.安全
cookie,session
cookieParser
cookieSession
3.路由
拆分
定義:根據url的不同,調用不同的代碼
4.服務端渲染
後端渲染(組裝):html生成出來
前端渲染(組裝):html生成出來
瀏覽器渲染:
輸入url->加載->html,css,js->渲染(畫)
渲染和性能的關係:
渲染的元素越多性能越慢
虛擬dom是在內存中修改 只在瀏覽器內渲染一次
模塊化:
所有的語言(除開js)都有模塊系統
1.前端
傳統-requireJs-AMD,SeaJs-CMD
CMD-公共模塊定義
命名空間
AMD-異步模塊定義
CMD+異步
現代-vue,angular,react
2.後端
node模塊系統
CMD規範的三個分別是require module exports
require()引入如果不是相對路徑
先找系統模塊如果沒有找當前目錄下面node_modules下面的模塊
node->router
1.創建
let router = express.Router()
2.給路由添加東西(當前地址必須要加/)
router.get("地址",()=>{})
router.post("地址",()=>{})
router.use("地址",()=>{})
3.添加到父級
server.use("路徑",router);
parentRouter.use("路徑",router);
req.params獲取路由參數的
後臺渲染 優點:穩定,安全,利於seo,spa
前臺渲染 優點:體積更小,靈活,用戶體驗好
/article/4564654 優點:對路由比較友好,利於seo
req.params
/article?id=4564654 優點:靈活
req.query
/article/:a/:b/:c 都必須有
/article?a=xxx&b=xxx 可省略
服務端渲染框架
pug 破壞式-破壞html結構
1.縮進規定層級
ejs 非破壞式-不破壞html結構
1.輸出
轉義輸出 <%= %>
非轉義輸出 <%- %>