1楼雹、Koa ejs 模版引擎
? ? ? ? ? 1)安裝 koa-views 和 ejs
? ? ? ? ? ? ? ? a姨涡、 安裝 koa-views ? ?npm install --save koa-views
? ? ? ? ? ? ? ? b、安裝 ?ejs ? npm install ejs?--save?
? ? ? ? ? ?2)引入koa-views 配置中間件
? ??????????????const views = require('koa-views');
? ??????????????app.use(views('views', { map: {html: 'ejs' }}));
? ? ? ? ? ?3)Koa 中使用 ejs
? ? ? 4) ejs 引入模版
? ? ? ?<%- include header.ejs %>
? ? ? ?5)ejs 綁定數(shù)據(jù)
? ? ? ?<%=h%>
? ? ? ? 6)ejs 綁定 html 數(shù)據(jù)
? ??????<%-h%>
? ??????7)ejs 模板判斷語(yǔ)句
? ??????<% if(true){ %>?
????????????????<div>true</div>
????????<%} else{ %>?
????????????????<div>false</div>
????????<%} %>
? ? ? ? 8) ejs 模板循環(huán)數(shù)據(jù)
? ??????<%for(var i=0;i<list.length;i++) { %>
? ??????????????????<li><%=list[i] %></li>
? ??????<%}%>
2、Koa post 提交數(shù)據(jù)?koa-bodyparser?中間件的使用
? ? ? ? 1、安裝 koa-bodyparser
? ??????npm install --save koa-bodyparser
? ? ? ? 2、安裝 引入配置中間件
? ? ? ? 3酸些、使用
? ? ? ? ctx.request.body 獲取 post 提交的數(shù)據(jù)
3、Koa 中 koa-staitc 中間件
? ? ? ? ? ?1)安裝 koa-static
? ??????????npm install --save koa-static
? ? ? ? ? ? 2)引入配置中間件
? ??????????const static = require('koa-static');
? ??????????app.use(static(?__dirname + '/public'?))
4檐蚜、Koa 中?koa art-template?模板引擎
? ? ? ? ? ?1) 安裝 koa art-template
? ??????????npm install --save art-template
? ? ? ? ? ? npm install --save koa-art-template
? ? ? ? ? ?2)導(dǎo)入 koa art-template 和使用
? ??????????const render = require('koa-art-template');
? ? ? ? ? ? ? ?3)?art-template?模板引擎語(yǔ)法?
? ? ? ? ? ? ? ?參考: http://aui.github.io/art-template/zh-cn/docs/syntax.html
5魄懂、Koa 中 Cookie 使用
? ? ? ? ? ? ? ? 1)cookie 介紹
? ? ? ? ? ? ? ? cookie 是存儲(chǔ)于訪問(wèn)者的計(jì)算機(jī)中的變量〈车冢可以讓我們用同一個(gè)瀏覽器訪問(wèn)同一個(gè)
? ? ? ? ? ? ? ? 域名的時(shí)候共享數(shù)據(jù)市栗。
????? ? ? ? ? ? ?HTTP?是無(wú)狀態(tài)協(xié)議。簡(jiǎn)單地說(shuō),當(dāng)你瀏覽了一個(gè)頁(yè)面填帽,然后轉(zhuǎn)到同一個(gè)網(wǎng)站的另????????????????????????????????
? ? ? ? ? ? ? ? ?一個(gè)頁(yè) 面蛛淋,服務(wù)器無(wú)法認(rèn)識(shí)到這是同一個(gè)瀏覽器在訪問(wèn)同一個(gè)網(wǎng)站。每一次的訪
? ? ? ? ? ? ? ? ?問(wèn)篡腌,都是沒(méi)有任何 關(guān)系的褐荷。
? ? ? ? ? ? ? ? 2)Koa Cookie?的使用
? ? ? ? ? ? ? ? ? ? ? a、ctx.cookies.set(name, value, [options])
? ? ? ? ? ? ? ? ? ? ?通過(guò)?options?設(shè)置?cookie name?的?value :? ??????????????
? ? ? ? ? ? ? ? ? ? ? ? ? b嘹悼、Koa?中獲取?Cookie?的值
? ? ? ? ? ? ? ? ? ? ? ? ? ctx.cookies.get('name'); ?
6叛甫、Koa 中 Session 使用??????????????????????
? ? ? ? ? 1)Session 介紹
?? ? ? ? ? ? ? ? session?是另一種記錄客戶(hù)狀態(tài)的機(jī)制,不同的是?Cookie?保存在客戶(hù)端瀏覽器中
? ? ? ? ? ? ? ? ?而?session?保存在服務(wù)器上杨伙。
? ? ? ? ? ?2)Session?的工作流程
? ??????????????當(dāng)瀏覽器訪問(wèn)服務(wù)器并發(fā)送第一次請(qǐng)求時(shí)其监,服務(wù)器端會(huì)創(chuàng)建一個(gè) session 對(duì)象,生?
? ? ? ? ? ? ? ? 成一個(gè)類(lèi)似于 key,value 的鍵值對(duì)缀台, 然后將 key(cookie)返回到瀏覽器(客戶(hù))端棠赛,瀏
????????????????覽 器下次再訪問(wèn)時(shí)哮奇,攜帶 key(cookie)膛腐,找到對(duì)應(yīng)的 session(value)。 客戶(hù)的信息都
????????????????保存 在 session 中鼎俘。
? ? ? ? ? ? 3)koa-session 的使用
? ? ? ? ? ? ? ? ??1.安裝 express-session? ? ? ? ? ? ? ?
? ?????????????????npm install koa-session --save ? ? ? ? ? ? ??
? ? ? ? ? ? ? ? ? ?2.引入 express-session
? ?????????????????const session = require('koa-session');
? ? ? ? ? ? ? ? ? ?3哲身、設(shè)置官方文檔提供的中間件
? ? ? ? ? ? 4)Cookie?和?Session?區(qū)別
? ? ? ? ? ? ? ? ? ??1、cookie?數(shù)據(jù)存放在客戶(hù)的瀏覽器上贸伐,session?數(shù)據(jù)放在服務(wù)器上勘天。???
????????????????????2、cookie?不是很安全捉邢,別人可以分析存放在本地的?COOKIE?并進(jìn)行?COOKIE?欺
? ? ? ? ? ? ? ? ? ? ? ? ? ?騙 考慮到安全應(yīng)當(dāng)使用?session脯丝。
????????????????????3、session?會(huì)在一定時(shí)間內(nèi)保存在服務(wù)器上伏伐。當(dāng)訪問(wèn)增多宠进,會(huì)比較占用你服務(wù)器
? ? ? ? ? ? ? ? ? ? ? ? ? ?的性能 考慮到減輕服務(wù)器性能方面,應(yīng)當(dāng)使用?COOKIE藐翎。
? ? ? ? ? ? ? ? ? ? ?4材蹬、單個(gè)?cookie?保存的數(shù)據(jù)不能超過(guò)?4K,很多瀏覽器都限制一個(gè)站點(diǎn)最多保存?
? ? ? ? ? ? ? ? ? ? ? ? ? ? 20?個(gè)?cookie吝镣。