一、给ctx扩render方法
由于ctx本身是没有render方法的,有时候需要写个中间件扩一个,方法如下
1、先引入一个中间件文件
const render=require("./render");
2、注册该中间件,并且传入访问目录参数
app.use(render({
dir:"template"
}));
3、render.js内容如下
const nunjucks = require("nunjucks");
//const fs=require("fs")不用fs,使用nunjucks模板引擎改造如下
module.exports = (opts={}) => {
nunjucks.configure(opts.dir || "template", {
watch: opts.watch || true,
noCache: opts.noCache || true
})//指定一个文件夹
return async (ctx, next) => {
ctx.render = function (...args) {
ctx.body = nunjucks.render(...args);
}
await next();
}
}
二、使用node第三方模块koa新建webserver服务步骤
1、新建项目文件夹
2、使用指令npm init -y初始化一个项目
3、使用指令npm i koa koa-router koa-static-cache安装必要的一些工具
4、使用指令npm i -D nodemon
5、新建一个app.js
6、在package.json中scripts处添加"start": "nodemon app.js"
7、使用指令nodemon app.js启动
8、在app.js中来一个koa const Koa=require("koa");
9、在app.js中来一个const KoaStaticCache=require("koa-static-cache")
10、在app.js中来一个路由const KouRouter =require("koa-router");
11、在app.js中创建一个应用const app=new Koa();
12、在app.js中监听一下app.listen(888, ()=>{
console.log("服务器启动成功")
})
13、静态资源代理使用KoaStaticCache中间件做(用use注册一个中间件)
app.use(KoaStaticCache({
prefix: "/public",//设置访问前缀
dir:"./public",//设置目录,当以上面那个签证访问是读取这个目录
dynamic:true,
gzip:true
}))