
正文
KOA 框架
提示:扫一扫查出行【扫一扫了解最新限行尾号】
复制提示
const koa = require('koa');const static = require('koa-static');const server = new koa();// 静态文件server.use(static('./public/'));// 事务处理server.use((ctx, next) => { ctx.body = 'abc'; // 如果还要处理,就需要加 next();});// 给别人下载server.use((ctx, next) => { // ctx.body = '已经下载'; // ctx.attachment('./1.txt');});server.on('error', (ctx) => { console.log('出现错误');});server.listen(8080);
静态文件 和 路由配置
// 配置路由对象const KoaRouter = require('koa-router');const router = new KoaRouter();app.use(router.routes()).use(router.allowedMethods());router.get('/add', ctx => { ctx.body = 'this is test';});// 渲染模板引擎const path = require('path');const render = require('koa-ejs');// 配置// 根路径,文件 ,后缀名,缓存,调试// 要创建一个views 文件夹,里面有一个layout.html// 所有页面都是用这个结构render(app, { root : path.join(__dirname, "views"), layout : 'layout', viewExt : 'html', cache : false, debug : false});// 路由跳转, 向模板添加数据router.get("/", async ctx => { await ctx.render("index", { title : 'things i love' });});
bodyParser 要放在 router 之前不然解析不到数据
session 配置
const Session = require('koa-session');app.keys = ['some secret hurr'];const CONFIG = { key: 'koa:sess', //cookie key (default is koa:sess) maxAge: 86400000, // cookie的过期时间 maxAge in ms (default is 1 days) overwrite: true, //是否可以overwrite (默认default true) httpOnly: true, //cookie是否只有服务器端可以访问 httpOnly or not (default true) signed: true, //签名默认true rolling: false, //在每次请求时强行设置cookie,这将重置cookie过期时间(默认:false) renew: false, //(boolean) renew session when session is nearly expired,};app.use(Session(CONFIG, app));
ejs标签含义
<% '脚本' 标签,用于流程控制,无输出。<%_ 删除其前面的空格符<%= 输出数据到模板(输出是转义 HTML 标签)<%- 输出非转义的数据到模板<%# 注释标签,不执行、不输出内容<%% 输出字符串 '<%'%> 一般结束标签-%> 删除紧随其后的换行符_%> 将结束标签后面的空格符删除








