0

0

如何利用Node.js和Express.js框架实现服务器端渲染(SSR)?

betcha

betcha

发布时间:2025-10-05 13:26:01

|

225人浏览过

|

来源于php中文网

原创

服务器端渲染(SSR)通过Node.js与Express.js实现,提升首屏加载速度和SEO;2. 使用EJS模板引擎可动态渲染数据,结合res.render返回HTML页面;3. 可选集成React同构渲染,利用react-dom/server生成HTML字符串;4. 配合express.static中间件提供静态资源支持,确保页面样式与交互正常。

如何利用node.js和express.js框架实现服务器端渲染(ssr)?

服务器端渲染(SSR)能提升首屏加载速度和SEO效果。使用Node.js配合Express.js,可以轻松实现动态页面在服务端组装HTML后返回给客户端。

设置基础Express服务器

先初始化项目并安装必要依赖:

npm init -y
npm install express

创建入口文件 server.js,搭建最简Express服务:

const express = require('express');
const app = express();
const port = 3000;

app.get('*', (req, res) => {
  res.send('

Hello SSR with Express

');
});

app.listen(port, () => {
  console.log(Server running on http://localhost:${port});
});

集成模板引擎进行动态渲染

Express支持多种模板引擎,如Pug、EJS、Handlebars等。以EJS为例,实现数据注入与HTML拼接:

npm install ejs

项目结构:

/views
  - index.ejs
server.js

配置Express使用EJS,并渲染带数据的页面:

app.set('view engine', 'ejs');
app.set('views', './views');

app.get('/', (req, res) => {
  const data = { title: 'SSR Page', message: 'Rendered on server' };
  res.render('index', data);
});

views/index.ejs 中接收数据:


结合React实现同构渲染(可选进阶)

若使用React构建前端,可通过 react-dom/server 在服务端生成HTML字符串:

有道智云AI开放平台
有道智云AI开放平台

有道智云AI开放平台

下载
npm install react react-dom

编写一个简单React组件 App.js

import React from 'react';

const App = ({ content }) =>

{content}
;
export default App;

路由中渲染组件为字符串:

import { renderToString } from 'react-dom/server';
import App from './App';

app.get('/react', (req, res) => {
  const html = renderToString();
  res.send(zuojiankuohaophpcn!DOCTYPE htmlyoujiankuohaophpcnzuojiankuohaophpcnhtmlyoujiankuohaophpcnzuojiankuohaophpcnbodyyoujiankuohaophpcn${html}zuojiankuohaophpcn/bodyyoujiankuohaophpcnzuojiankuohaophpcn/htmlyoujiankuohaophpcn);
});

此时返回的HTML已包含内容,适合搜索引擎抓取。

处理静态资源与中间件

SSR应用通常还需提供CSS、JS等静态文件。使用Express内置中间件:

app.use(express.static('public'));

将CSS、客户端JS放入 public 目录,HTML模板中正常引用:

css">

这样服务端输出的页面具备样式和交互能力。

基本上就这些。通过Express搭配模板引擎或React,就能实现高效SSR,兼顾性能与可维护性。关键在于数据获取与HTML生成都在服务端完成,再发送完整页面给浏览器

相关专题

更多
什么是中间件
什么是中间件

中间件是一种软件组件,充当不兼容组件之间的桥梁,提供额外服务,例如集成异构系统、提供常用服务、提高应用程序性能,以及简化应用程序开发。想了解更多中间件的相关内容,可以阅读本专题下面的文章。

175

2024.05.11

Golang 中间件开发与微服务架构
Golang 中间件开发与微服务架构

本专题系统讲解 Golang 在微服务架构中的中间件开发,包括日志处理、限流与熔断、认证与授权、服务监控、API 网关设计等常见中间件功能的实现。通过实战项目,帮助开发者理解如何使用 Go 编写高效、可扩展的中间件组件,并在微服务环境中进行灵活部署与管理。

212

2025.12.18

css
css

css是层叠样式表,用来表现HTML或XML等文件样式的计算机语言,不仅可以静态地修饰网页,还可以配合各种脚本语言动态地对网页各元素进行格式化。php中文网还为大家带来html的相关下载资源、相关课程以及相关文章等内容,供大家免费下载使用。

501

2023.06.15

css居中
css居中

css居中:1、通过“margin: 0 auto; text-align: center”实现水平居中;2、通过“display:flex”实现水平居中;3、通过“display:table-cell”和“margin-left”实现居中。本专题为大家提供css居中的相关的文章、下载、课程内容,供大家免费下载体验。

261

2023.07.27

css如何插入图片
css如何插入图片

cssCSS是层叠样式表(Cascading Style Sheets)的缩写。它是一种用于描述网页或应用程序外观和样式的标记语言。CSS可以控制网页的字体、颜色、布局、大小、背景、边框等方面,使得网页的外观更加美观和易于阅读。php中文网给大家带来了相关的教程以及文章,欢迎大家前来阅读学习。

734

2023.07.28

css超出显示...
css超出显示...

在CSS中,当文本内容超出容器的宽度或高度时,可以使用省略号来表示被隐藏的文本内容。本专题为大家提供css超出显示...的相关文章,相关教程,供大家免费体验。

535

2023.08.01

css字体颜色
css字体颜色

CSS中,字体颜色可以通过属性color来设置,用于控制文本的前景色,字体颜色在网页设计中起到很重要的作用,具有以下表现作用:1、提升可读性;2、强调重点信息;3、营造氛围和美感;4、用于呈现品牌标识或与品牌形象相符的风格。

748

2023.08.10

什么是css
什么是css

CSS是层叠样式表(Cascading Style Sheets)的缩写,是一种用于描述网页(或其他基于 XML 的文档)样式与布局的标记语言,CSS的作用和意义如下:1、分离样式和内容;2、页面加载速度优化;3、实现响应式设计;4、确保整个网站的风格和样式保持统一。

595

2023.08.10

php源码安装教程大全
php源码安装教程大全

本专题整合了php源码安装教程,阅读专题下面的文章了解更多详细内容。

7

2025.12.31

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Node.js 教程
Node.js 教程

共57课时 | 7.7万人学习

【web前端】Node.js快速入门
【web前端】Node.js快速入门

共16课时 | 1.9万人学习

Node.js-前端工程化必学
Node.js-前端工程化必学

共19课时 | 3万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号