Nodejs 学习2 Koa
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 绑定数据
<%=h%>
6)ejs 绑定 html 数据
<%-h%>
7)ejs 模板判断语句
<% if(true){ %>
<div>true</div>
<%} else{ %>
<div>false</div>
<%} %>
8) ejs 模板循环数据
<%for(var i=0;i<list.length;i++) { %>
<li><%=list[i] %></li>
<%}%>
2、Koa post 提交数据 koa-bodyparser 中间件的使用
1、安装 koa-bodyparser
npm install --save koa-bodyparser
2、安装 引入配置中间件
3、使用
ctx.request.body 获取 post 提交的数据
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)导入 koa art-template 和使用
const render = require('koa-art-template');
3) art-template 模板引擎语法
参考: http://aui.github.io/art-template/zh-cn/docs/syntax.html
5、Koa 中 Cookie 使用
1)cookie 介绍
cookie 是存储于访问者的计算机中的变量。可以让我们用同一个浏览器访问同一个
域名的时候共享数据。
HTTP 是无状态协议。简单地说,当你浏览了一个页面,然后转到同一个网站的另
一个页 面,服务器无法认识到这是同一个浏览器在访问同一个网站。每一次的访
问,都是没有任何 关系的。
2)Koa Cookie 的使用
a、ctx.cookies.set(name, value, [options])
通过 options 设置 cookie name 的 value :
b、Koa 中获取 Cookie 的值
ctx.cookies.get('name');
6、Koa 中 Session 使用
1)Session 介绍
session 是另一种记录客户状态的机制,不同的是 Cookie 保存在客户端浏览器中
而 session 保存在服务器上。
2)Session 的工作流程
当浏览器访问服务器并发送第一次请求时,服务器端会创建一个 session 对象,生
成一个类似于 key,value 的键值对, 然后将 key(cookie)返回到浏览器(客户)端,浏
览 器下次再访问时,携带 key(cookie),找到对应的 session(value)。 客户的信息都
保存 在 session 中。
3)koa-session 的使用
1.安装 express-session
npm install koa-session --save
2.引入 express-session
const session = require('koa-session');
3、设置官方文档提供的中间件
4)Cookie 和 Session 区别
1、cookie 数据存放在客户的浏览器上,session 数据放在服务器上。
2、cookie 不是很安全,别人可以分析存放在本地的 COOKIE 并进行 COOKIE 欺
骗 考虑到安全应当使用 session。
3、session 会在一定时间内保存在服务器上。当访问增多,会比较占用你服务器
的性能 考虑到减轻服务器性能方面,应当使用 COOKIE。
4、单个 cookie 保存的数据不能超过 4K,很多浏览器都限制一个站点最多保存
20 个 cookie。