Egg.js 中如何正确返回 HTML 页面并渲染模板?
我在 Egg.js 里写了个 controller,想返回一个简单的 HTML 页面,但页面总是显示空白或者报错。我试过用 ctx.body 直接返回字符串,也试过用 view 模板,但都不对。
这是我的 HTML 代码:
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8" />
<title>测试页面</title>
</head>
<body>
<h1>Hello from Egg.js!</h1>
</body>
</html>
到底该怎么在 Egg.js 里正确渲染这个页面?是不是要配置 view 引擎?
方式一:直接返回 HTML 字符串(最简单)
关键点:设置
ctx.type = 'html',不然浏览器可能当成纯文本解析。方式二:使用模板引擎(推荐,适合动态数据)
先安装模板引擎:
然后在
config/plugin.js启用:在
config/config.default.js配置模板路径:在
app/view目录下创建模板文件,比如home.nj:Controller 里这样用:
总结:静态 HTML 直接返回就完事儿,用方式一;需要动态渲染数据(比如从数据库拿数据)才需要上模板引擎。