新闻中心

nodejs如何添加html_Node.js服务端HTML渲染与响应方法

2025-11-02
浏览次数:
返回列表
Node.js中返回HTML可通过原生HTTP模块直接发送字符串或使用模板引擎动态渲染。直接返回时需设置Content-Type为text/html并用res.end()发送HTML内容;对于动态数据,可结合EJS等模板引擎读取模板文件并渲染数据后返回;更推荐在中大型项目中使用Express框架,配置视图引擎后通过res.render()便捷地响应HTML页面,提升可维护性与开发效率。

nodejs如何添加html_node.js服务端html渲染与响应方法

在Node.js中返回HTML内容给客户端,通常有两种方式:直接返回静态HTML字符串,或通过模板引擎动态渲染页面。无论哪种方式,核心都是设置正确的响应头并发送HTML内容。

直接返回HTML字符串

适合简单场景,比如返回一个内联的HTML页面或维护提示页。

  • 使用 res.writeHead() 设置状态码和Content-Type为 text/html
  • 通过 res.end() 发送HTML内容

示例代码:

const http = require('http');

const server = http.createServer((req, res) => {
  res.writeHead(200, { 'Content-Type': 'text/html; charset=utf-8' });
  const html = `
    <!DOCTYPE html>
    <html>
      <head><title>Node.js 页面</title></head>
      <body>
        <h1>欢迎访问 Node.js 服务</h1>
        <p>这是通过 res.end() 直接返回的 HTML 内容。</p>
      </body>
    </html>
  `;
  res.end(html);
});

server.listen(3000, () => {
  console.log('服务器运行在 http://localhost:3000');
});

使用模板引擎渲染HTML(如EJS、Pug)

当需要动态数据插入HTML时,推荐使用模板引擎。以 EJS 为例:

  • 安装 ejs:npm install ejs
  • 创建模板文件(如 views/index.ejs)
  • 在路由中读取模板并渲染数据

示例目录结构:

ChatCut ChatCut

AI视频剪辑工具

ChatCut 1086 查看详情 ChatCut
/views
  index.ejs
app.js

views/index.ejs 文件内容:

<!DOCTYPE html>
<html>
  <head><title><%= title %></title></head>
  <body>
    <h1><%= message %></h1>
  </body>
</html>

app.js 中使用 EJS 渲染:

const http = require('http');
const fs = require('fs');
const path = require('path');
const ejs = require('ejs');

const server = http.createServer((req, res) => {
  const filePath = path.join(__dirname, 'views', 'index.ejs');
  
  fs.readFile(filePath, 'utf8', (err, template) => {
    if (err) {
      res.writeHead(500, { 'Content-Type': 'text/plain' });
      return res.end('模板读取失败');
    }

    const html = ejs.render(template, {
      title: '动态页面',
      message: 'Hello from EJS!'
    });

    res.writeHead(200, { 'Content-Type': 'text/html; charset=utf-8' });
    res.end(html);
  });
});

server.listen(3000);

使用 Express 框架简化HTML响应

Express 是最常用的 Node.js Web 框架,内置对模板引擎的支持。

  • 安装 express 和 ejs:npm install express ejs
  • 配置视图目录和引擎
  • 使用 res.render() 发送渲染后的页面

示例:

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 + EJS',
    message: '这是通过 Express 渲染的页面'
  });
});

app.listen(3000, () => {
  console.log('服务启动在 http://localhost:3000');
});

基本上就这些。根据项目复杂度选择合适的方式:小项目可用原生返回HTML,中大型建议用Express配合模板引擎,便于维护和扩展。

以上就是nodejs如何添加html_Node.js服务端HTML渲染与响应方法的详细内容,更多请关注其它相关文章!


# 如何下载  # 网站建设代码范例  # 大连seo推广营销  # 建设与开发英文网站  # 移动网站seo优化注意事项  # 百度关键词地区排名查询php源码  # 西湖网站营销推广  # 长沙seo外链优化  # 营销引流推广案例分析题  # 登封免费网站建设  # 地产网站seo优化方法  # 解决问题  # 中文网  # 相关文章  # 雪夜  # 推荐使用  # 网页html  # 都是  # 网上  # 服务端  # 这是  # 状态码  # 路由  # ai  # app  # npm  # node  # node.js  # js  # html  # nodejs 


相关栏目: 【 科技资讯46185 】 【 网络学院92790


相关推荐: 哔哩哔哩忘记密码了怎么找回_哔哩哔哩密码找回方法  126邮箱手机版登录官网2026_126手机邮箱免费入口最新  神经网络二分类模型训练异常:高损失与完美验证准确率的排查与修正  Fabric Mod开发:在1.19.3+版本中正确添加自定义物品并管理物品组  在Runstone环境中高效处理TasteDive API的JSON数据  mcjs网页版流畅运行 mcjs低配电脑畅玩入口  如何在离线环境中使用Composer_Composer离线安装依赖包的技巧与策略  德邦快递查询平台 德邦快递物流信息查询入口  CSS Box Model与弹性按钮:维持布局稳定的动画实践  一加Ace 6T支持全新明眸护眼:通过了最严苛的护眼小金标认证  韩小圈电脑版在线入口_网页版免费登录地址  c++如何实现一个简单的软件渲染器_c++从零开始的3D图形学  从J*aScript对象中精确提取指定属性的教程  提升Kafka消费者健壮性:会话超时处理与消息处理语义  在命令行怎么运行html项目_命令行运行html项目方法【教程】  邮政快递单号查询入口 邮政快递物流信息在线查询入口  J*aScript中高效管理与清空动态列表:避免循环陷阱  反效果?《战地6》免费试玩开启后玩家数不升反降  Win10自动更新怎么关闭 Win10永久关闭系统更新的两种方法【终极版】  QQ邮箱在线登录平台 QQ邮箱个人邮箱网页版入口  如何有效阻止外部脚本意外修改内联样式的高度属性  深入理解J*aScript中的B样条曲线与节点向量生成  php源码怎么看淘宝客系统_看php源码淘宝客系统技巧  Safari怎么安装扩展程序 浏览器插件安装与管理方法【详解】  Win11怎么修改默认浏览器_Windows 11设置Chrome为默认  微信语音通话掉线如何解决 微信语音通话稳定优化方法  iCloud登录入口网页版 苹果iCloud官网登录  Composer的 "conflict" 字段有什么用_如何声明不兼容的包以避免依赖冲突  Win10如何恢复误删的快捷方式_Win10重建常用软件快捷方式  mysql如何设置表访问权限_mysql表访问权限配置  sublime怎么预览Markdown渲染效果_Markdown Preview插件 for sublime教程  Kafka Streams中基于消息头条件过滤消息的实现指南  J*a应用程序首次运行自动创建文件与目录的最佳实践  极兔快递快件信息查询系统 极兔快递官网运单号追踪  内存检查:在VS Code中调试C++时的内存视图  深入理解rpy2中的类型转换:优化Python对象到R矩阵的映射  Python中高效访问嵌套字典与列表中的键值对  Mac怎么查看崩溃日志_Mac控制台错误报告分析  Golang如何实现微服务鉴权与权限控制_Golang微服务鉴权与权限管理实践  曝R星经典之作开发图 设计简陋但信息密集!  蓝湖怎样用切图标注提对接效率_蓝湖用切图标注提对接效率【设计对接】  网易大神怎么保存别人动态的图片_网易大神动态图片保存方法  如何在 Excel Online 和 Google 表格中更改日期格式  理解Python模块与全局变量的作用域管理  如何使用J*aScript精确选择并批量修改特定父元素下子链接的样式  DLsite中文平台入口 DLsite官网内容在线查看  如何在Python中使用Optional类型处理可变对象并避免Pylint警告  html网页设计源代码怎么运行_运行html网页设计源代码步骤【指南】  如何使 Jest 模拟函数默认抛出错误以提高测试效率  铁路12306官网网页端快速入口 铁路12306官方首页登录教程 

搜索