koa koa-static 静态资源中间件 art-template cookie

佴保臣
2023-12-01

1 安装 npm install  --save koa-static

2 引入   const static =require("koa-static");

3 使用  

app.use(static("static"))
              //目录

4 之后就可以在html中 获的本地静态资源了  但是需要注意的是 因为你中间件已经定义了目录

 所以 <link rel="stylesheet" href="css/header.css">  找的是static(中间件定义目录下) 开始找的

5 可以设置多个中间件 来设置多个静态目录

 

art-template

1 安装 npm install --save art-template

 npm install --save koa-art-tempalte 

2 引入  const render=require("koa-art-template");

3  配置  

render(app, {

root: path.join(__dirname, 'view'), //视图位置

extname: '.html', //后缀

debug: process.env.NODE_ENV !== 'production' //是否启动调试

});

 

4 使用 

 

var Koa =require("koa");
var app=new Koa();
var Router=require("koa-router");
var router =new Router();
const views =require("koa-views");
var bodyParser=require("koa-bodyparser");
const static =require("koa-static");
const render=require("koa-art-template");
var path =require("path")
app.use(static("static"))
              //目录
app.use(bodyParser());
app.use(views('views',{map:{html:'ejs'}}));
render(app, {
    root: path.join(__dirname, 'view'),  //视图位置
    extname: '.html',  //后缀
    debug: process.env.NODE_ENV !== 'production'  //是否启动调试
  });
app.use(async (ctx,next)=>{
    await next();
    if(ctx.status==404){
        ctx.status=404
        ctx.body="错误404"
    }
})





// 使用
router.get("/",async (ctx,next)=>{
    let name="姓名";
    let password="密码"
       await ctx.render("index")
})
router.post("/p",async (ctx,next)=>{
  ctx.body=ctx.request.body
})






app.use(router.routes())
app.use(router.allowedMethods())
app.listen(8081)

  绑定数据

<%=name %>

<% 1+2 %>

绑定html

<%-list  %>

 

更多语法 http://aui.github.io/art-template/zh-cn/docs/syntax.html   与ejs基本一样

需要注意的是 引入其他外部文件(子模块  与ejs不一样 )

<%  include("./....html")  %>

 

cookie

1 koa  设置cookie的值

ctx.cookies.set(name,value,[options]) 名字 值 和一些参数 maxAge 过期参数 毫秒计算

expires 过期日期  path cookie路径 默认是"/"  domain  cookie域名   seure 布尔值 默认false  true时只有https可以访问

httpOnly  只有服务器访问

2 ctx.cookies.get("name") 获取   需要注意的是 cookie的值 不能是中文

router.get("/",async (ctx,next)=>{
    ctx.cookies.set("userinfo","123",{maxAge:60*1000*60})
    await ctx.render("index")
})
router.get("/new",async (ctx)=>{
  ctx.body=ctx.cookies.get("userinfo")
})

3  koa 中设置中文cookie(转换成base64   保存   取出来以后在转换出来)

router.get("/",async (ctx,next)=>{
    let name=new Buffer("找死").toString("base64");
    ctx.cookies.set("userinfo",name,{maxAge:60*1000*60})
    await ctx.render("index")
})
router.get("/new",async (ctx)=>{
   let nameBase=ctx.cookies.get("userinfo")
   let name=new Buffer(nameBase,"base64").toString()
  ctx.body=name
  
})

 

 类似资料: