给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!”}作为变量传递给模版。之后通过浏览器打开页面,即可看到最终的渲染结果。

#node

SideEffect is a blog for front-end web development.
Code by Axiu / rss