在Express.js中,视图引擎(View Engine)是一种模板引擎,用于将动态内容渲染为HTML页面,并将其发送到客户端。视图引擎通过使用动态数据和模板文件来生成最终的HTML页面,这样可以轻松地将动态数据呈现给用户。

Express.js支持多种视图引擎,如EJS、Pug(之前的Jade)、Handlebars等。下面以EJS视图引擎为例来说明如何配置和使用视图引擎:

首先,安装EJS视图引擎:

npm install ejs

然后,在Express应用程序中通过app.set()方法配置视图引擎和视图文件夹的路径。例如,将EJS视图引擎设置为默认的视图引擎,并将视图文件放置在名为views的文件夹中:

const express = require('express');
const app = express();
 
// 配置视图引擎
app.set('view engine', 'ejs');
app.set('views', 'views');
 
// 定义路由
app.get('/', (req, res) => {
  res.render('index', { title: 'Express.js with EJS' });
});
 
// 启动服务器
app.listen(3000, () => {
  console.log('服务器已启动');
});

在上述代码中,通过app.set()方法将视图引擎设置为EJS,并将视图文件夹设置为views。这意味着在渲染视图时,Express将会在views文件夹中查找对应的视图文件。

接下来,在路由中使用res.render()方法来渲染视图。res.render()方法接受两个参数,第一个参数是视图文件的名称,第二个参数是要传递给视图的数据对象。在上述例子中,将渲染名为index.ejs的视图文件,并将一个包含title属性的数据对象传递给视图。

最后,当访问根URL路径时,res.render()方法将会渲染index.ejs视图文件,生成最终的HTML响应,并将其发送到客户端。

通过这种方式,您可以使用各种视图引擎在Express应用程序中动态生成HTML页面,并将其呈现给用户。视图引擎使得处理动态数据和HTML页面分离变得更加简单。