一. 使用ejs模板引擎
1. 安装所需包
# 在项目中下载koa-views包
npm i koa-views
# 在项目中下载ejs包
npm i ejs
2. 代码实现
入口文件index.js:
const Koa = require('koa');
const Router = require('koa-router');
const app = new Koa();
const router = new Router();
// 1. 引入koa-views
const views = require('koa-views');
// 2. 配置模板引擎中间件:views()第一个参数是视图模板所在的路径,第二个参数是应用ejs模板引擎
app.use(views('views', { extension: 'ejs' })); // 若这样配置,模板的后缀名是.ejs
//app.use(views('views', { map: { html: 'ejs' } })); // 若这样配置,模板的后缀名是.html
// 我们需要在每个路由的render中都渲染一个公共的数据
// 写一个中间件配置公共信息
app.use(async (ctx, next) => {
// 公共的数据要放在ctx.state中
ctx.state = {
userinfo: '张三',
age: '18',
}
await next()
})
router.get('/', async (ctx, next) => {
let title = '你好ejs'
// 3. 异步渲染模板
await ctx.render('index.ejs', {
// 绑定数据
title: title
})
})
router.get('/news', async (ctx, next) => {
let arr = ['111111', '22222', '444444']
let content = "<h2>这是一个h2</h2>"
let num = 123
await ctx.render('news.ejs&#