当前位置: 首页 > article >正文

nodejs入门教程16:nodejs res

常用属性

  • statusCode: 设置或获取HTTP状态码。例如,200表示成功,404表示未找到。
  • statusMessage: 设置或获取与状态码相对应的状态消息。这通常不需要手动设置,因为Node.js会根据statusCode自动设置它。
  • headersSent: 一个布尔值,表示响应头是否已经被发送。
  • sendDate: 一个布尔值,表示是否在响应头中包含日期和时间。默认值为true
  • header: 一个对象,包含将要发送到客户端的响应头。注意,这里的头名称是首字母大写的,与IncomingMessageheaders属性不同。

常用方法

  • writeHead(statusCode[, statusMessage][, headers]): 发送响应头到客户端。statusCode是HTTP状态码,statusMessage是可选的状态消息,headers是一个包含响应头的对象。这个方法必须在end方法之前调用,且只能调用一次。
  • write(chunk[, encoding][, callback]): 向响应体中写入数据。chunk可以是一个字符串或一个Buffer对象。encoding是可选的,用于指定字符串的编码。callback是可选的,当数据被刷新到客户端时调用。
  • end([data][, encoding][, callback]): 结束响应,并可选地向响应体中写入最后的数据。如果data被指定,它相当于先调用write再调用endencodingcallbackwrite方法相同。
  • setHeader(name, value): 设置单个响应头的值。如果头已经存在,则替换它的值。
  • removeHeader(name): 移除一个已经设置的响应头。
  • addHeader(name, value): 向响应头中添加一个值,而不替换现有的值(如果头已经存在)。这对于设置多个相同名称的头(如Set-Cookie)很有用。

示例

以下是一个简单的HTTP服务器示例,它使用http.ServerResponse来发送响应:

const http = require('http');

const server = http.createServer((req, res) => {
  // 设置响应头
  res.writeHead(200, { 'Content-Type': 'text/plain' });

  // 向响应体中写入数据
  res.write('Hello, ');
  res.write('world!\n');

  // 结束响应
  res.end();
});

server.listen(3000, '127.0.0.1', () => {
  console.log('Server running at http://127.0.0.1:3000/');
});

在这个例子中,服务器监听在127.0.0.1:3000上,当接收到请求时,它设置响应头为200 OKContent-Type: text/plain,然后向响应体中写入"Hello, world!\n",最后结束响应。

注意事项

  • 响应头必须在响应体之前发送,即你必须在调用writeend之前调用writeHead
  • 一旦响应头被发送(无论是通过writeHead还是隐式地通过第一次调用writeend),你就不能再修改它们。
  • 如果你没有显式调用writeHead,Node.js会在你第一次调用writeend时自动为你设置一个默认的响应头。
  • 响应结束后,不能再向它写入数据。如果你尝试这样做,将会触发一个错误。

了解并熟练使用http.ServerResponse的属性和方法对于构建有效的Node.js HTTP服务器至关重要。


http://www.kler.cn/a/377770.html

相关文章:

  • nginx系列--(三)--http
  • GitHub个人主页美化
  • 鸿蒙跳转商店应用页面(给我评分功能)
  • VIM使用笔记
  • 【万字详文介绍】:迭代扩张卷积神经网络(IDCNN)
  • 基于python深度学习的交通标志图像识别设计与实现,卷积神经网络(CNN)作为主要架构
  • 基于MATLAB多参数结合火焰识别系统
  • 【系统面试篇】进程和线程类(1)(笔记)——区别、通讯方式、同步、互斥、死锁
  • AI周报(10.27-11.02)
  • 实现短信中带有链接,直接打开微信小程序
  • Xamarin 实现播放视频 MP4
  • 你竟然还不了解 LDAP?
  • 【运维类】服务器日常维护清单及检查表,运维巡查,设备巡检,服务器检查(Word原件)
  • leetcode hot100【LeetCode 139. 单词拆分】java实现
  • NLP segment-01-聊一聊分词 AI 的基础
  • flutter 写个简单的界面
  • H5页面在线预览pdf
  • ceph补充介绍
  • [论文阅读]A Survey of Embodied Learning for Object-Centric Robotic Manipulation
  • 编写dockerfile生成镜像,并且构建容器运行
  • Javascript数据结构与算法——栈与队列
  • 自然语言处理领域中的两个主要技术挑战:实体歧义和上下文管理
  • 网络模型——二层转发原理
  • 如何使用python轻松入手文本数据分析?
  • vue项目安装组件失败解决方法
  • element-plus 修改主题色(按需导入)