给nestjs添加ejs模版支持
2023年1月29日 • ... • ☕️ 1 min read
nestjs本身是项目无关的框架,意味着默认不会将express、fastify等作为依赖,可以与任何node.js的http框架一起工作。不过为了方便使用,nest默认把express作为开箱即用的平台(包@nestjs/platform-express)。
所以让nest支持ejs,即在express中设置模版引擎,安装ejs包之后,做一下配置:
app.setViewEngine('ejs');
使用模版引擎有什么好处呢?最常用的就是,在运行时注入一些变量,之后把模版渲染为html来供浏览器客户端使用。常用的模版引擎包括jade(或叫Pug,express默认)、EJS、Mustache等。
模版即MVC(Model-View-Controller)中的View。
在nest中,需要定义一个controller,来使用指定模版
@Controller()
export class AppController {
@Get()
@Render('index')
root() {
return { message: 'Hello world!' };
}
}
对应的index模版部分代码
<body>
<%=message%>
<div id="app"><div id="appLoading"></div></div>
</body>
@Render来表示使用模版’index’来渲染这个请求,并把{message: “Hello world!”}作为变量传递给模版。之后通过浏览器打开页面,即可看到最终的渲染结果。