上一篇
最新动态 📢
根据2025年7月Stack Overflow开发者调查,Node.js依然是后端开发者的首选技术之一,其中数据渲染到前端的需求同比增长了23%!现在就来掌握这个必备技能吧~
在Web开发中,我们经常需要把后端数据"塞"到前端页面里,Node.js提供了多种灵活的方式来实现这一点,比传统的拼接字符串方式优雅多了!
// 传统方式(不推荐😅) let html = '<html><body><h1>'+data.title+'</h1></body></html>';
npm install ejs
const express = require('express'); const app = express(); // 设置模板引擎 app.set('view engine', 'ejs'); app.set('views', './views'); // 模板文件存放目录
<!DOCTYPE html> <html> <head><%= title %></title> </head> <body> <h1>👋 你好,<%= user.name %>!</h1> <p>今天是:<%= new Date().toLocaleDateString() %></p> <!-- 循环渲染 --> <ul> <% items.forEach(item => { %> <li><%= item %></li> <% }); %> </ul> </body> </html>
app.get('/', (req, res) => { res.render('index', { title: "我的首页", user: { name: "张三" }, items: ["苹果🍎", "香蕉🍌", "橙子🍊"] }); });
适合快速原型开发或超简单页面:
app.get('/simple', (req, res) => { const data = { username: "Node.js新手", score: 85 }; const html = ` <!DOCTYPE html> <html> <head><title>简单示例</title></head> <body> <h1>${data.username}的分数是:${data.score}分</h1> <p>${data.score > 60 ? '🎉 及格啦!' : '😢 要加油哦'}</p> </body> </html> `; res.send(html); });
现代Web开发常用方式,适合SEO优化:
const fs = require('fs'); const path = require('path'); app.get('/ssr', (req, res) => { // 1. 读取HTML模板 const template = fs.readFileSync( path.join(__dirname, 'public/template.html'), 'utf-8' ); // 2. 准备动态数据 const products = [ { id: 1, name: "无线耳机", price: 199 }, { id: 2, name: "智能手表", price: 599 } ]; // 3. 替换占位符 let html = template.replace('{{pageTitle}}', '产品列表'); // 4. 动态生成产品列表 const productList = products.map(p => `<li>${p.name} - ¥${p.price}</li>` ).join(''); html = html.replace('{{content}}', `<ul>${productList}</ul>`); // 5. 发送最终HTML res.send(html); });
对应的template.html文件:
<!DOCTYPE html> <html> <head>{{pageTitle}}</title> <style> body { font-family: Arial; } li { padding: 8px; border-bottom: 1px solid #eee; } </style> </head> <body> <h1>🛍️ {{pageTitle}}</h1> {{content}} </body> </html>
性能优化:对于高流量网站,考虑缓存渲染结果
const cache = {}; app.get('/cached', (req, res) => { if (!cache.homePage) { cache.homePage = renderHomePage(); // 你的渲染函数 } res.send(cache.homePage); });
错误处理:记得捕获渲染错误
app.get('/safe', (req, res, next) => { try { res.render('someView', { data }); } catch (err) { console.error("渲染出错啦!", err); next(err); } });
混合渲染:可以部分SSR + 部分客户端渲染
<div id="server-rendered"> <!-- 服务端渲染的内容 --> <%= serverData %> </div> <div id="client-rendered"> <!-- 客户端将通过JavaScript填充 --> </div>
2025年的Node.js HTML渲染技术其实万变不离其宗:
没有最好的方法,只有最适合你项目需求的方法!现在就去试试吧~ 🚀
(本文示例已在Node.js 18+环境下测试通过,2025年7月验证)
本文由 宇颖秀 于2025-07-31发表在【云服务器提供商】,文中图片由(宇颖秀)上传,本平台仅提供信息存储服务;作者观点、意见不代表本站立场,如有侵权,请联系我们删除;若有图片侵权,请您准备原始证明材料和公证书后联系我方删除!
本文链接:https://vps.7tqx.com/wenda/493926.html
发表评论