express.js 中的“app.render”和“res.render”有什么区别

编程代码JS

1个回答

写回答

15051414171

2025-06-22 11:35

+ 关注

JS
JS

在Express.JS中,app.renderres.render是用于渲染视图模板的两个方法。它们在使用方式和作用范围上有一些区别。

首先,app.render是在应用级别定义的方法,用于渲染视图模板并将结果作为回调函数的参数返回。它通常在路由处理函数中使用,以便在服务器端生成并发送渲染后的HTML页面。这个方法的语法如下:

Javascript

app.render(view, [locals], callback)

其中,view是要渲染的视图模板的名称,locals是一个可选参数,用于传递给视图模板的数据,callback是一个回调函数,用于接收渲染后的HTML页面。

res.render是在响应对象上定义的方法,用于渲染视图模板并将结果发送到客户端。它通常在路由处理函数中使用,以便在客户端显示渲染后的HTML页面。这个方法的语法如下:

Javascript

res.render(view, [locals], callback)

其中,view是要渲染的视图模板的名称,locals是一个可选参数,用于传递给视图模板的数据,callback是一个回调函数,用于处理渲染后的HTML页面。

案例代码:

假设我们有一个名为index.eJS的视图模板文件,它包含一个简单的HTML结构和一个动态插入的变量title,如下所示:

html

<!DOCTYPE html>

<html>

<head>

<title><%= title %></title>

</head>

<body>

<h1>Welcome to <%= title %> Page!</h1>

</body>

</html>

在应用级别使用app.render方法渲染视图模板的示例代码如下:

Javascript

app.get('/', function(req, res) {

app.render('index', { title: 'Home' }, function(err, html) {

if (err) {

console.error(err);

res.status(500).send('Internal Server Error');

} else {

res.send(html);

}

});

});

在响应对象上使用res.render方法渲染视图模板的示例代码如下:

Javascript

app.get('/', function(req, res) {

res.render('index', { title: 'Home' }, function(err, html) {

if (err) {

console.error(err);

res.status(500).send('Internal Server Error');

} else {

res.send(html);

}

});

});

区别:

一下,app.render方法是在应用级别定义的,用于在服务器端生成并返回渲染后的HTML页面,而res.render方法是在响应对象上定义的,用于将渲染后的HTML页面发送到客户端。它们的语法和使用方式非常相似,但是使用的上下文和作用范围有所不同。无论是在应用级别还是在响应级别使用这两个方法,都需要提供视图模板的名称和可选的数据对象,并且都可以通过回调函数处理渲染后的HTML页面。

举报有用(4分享收藏

Copyright © 2025 IZhiDa.com All Rights Reserved.

知答 版权所有 粤ICP备2023042255号