首页 > 编程语言 >NodeJS

NodeJS

时间:2023-06-10 17:13:57浏览次数:35  
标签:const 请求 NodeJS url req request http

请求报文和请求对象

请求报文和请求对象是相关但不完全相同的概念。

  • 请求报文是在 HTTP 协议中定义的一种格式化的数据结构,用于客户端向服务器发送请求。它包含了请求行、请求头和请求体等部分,用于描述请求的相关信息和携带数据。

  • 请求对象是在服务器端处理请求时,根据请求报文构建的一个对象,表示客户端发送的请求信息。在 Node.js 或其他服务器端框架中,请求对象通常由服务器框架提供,并包含了请求报文的各个部分的解析和封装。

一次 HTTP 传输解析

创建一个后台服务对象

const http = require('http');

const server = http.createServer((request, response) => {
  // magic happens here!
});

当一个 HTTP 到达服务端,node 调用 request 处理程序,并产生一些唾手可得的对象用以处理传输,这些对象就是 request 和 response。

request 对象是一个IncomingMessage实例。
response 对象是一个ServerResponse实例

方法、访问地址和请求头

当处理一个请求时,第一件事你需要做的是看一下这个方法和其访问地址,以此决定你到底采取何种合理的行为。
const { method, url } = request;

请求头也不是很难得到,它们也在 request 对象里,称为 headers。
const { headers } = request;

示例:处理GET请求

创建一个后台服务,发送GET请求,解析url中的参数

const http=require('http');
//nodejs中的查询字符串模块
const querystring=require('querystring');

const server = http.createServer((req,res)=>{
    const {method,url,headers}=req;
    console.log('method',method);
    console.log('url',url);
    console.log('headers',headers);

    //获取url传递的参数
    req.query=querystring.parse(url.split('?')[1]);//querystring.parse() 方法将网址查询字符串 (str) 解析为键值对的集合。赋值给新增属性req.query中
    console.log('query',req.query);
    res.end(
        JSON.stringify(req.query)//JavaScript JSON.stringify()方法用于将 JavaScript 值(通常为对象或数组)转换为 JSON 字符串。
    )
});

server.listen(5000,()=>{
    console.log('server running at port 5000');
})

服务启动后,使用Postman发送一个GET请求:

服务端结果:

标签:const,请求,NodeJS,url,req,request,http
From: https://www.cnblogs.com/marshban/p/17471556.html

相关文章

  • graalvm nodejs + spire office 实现office 处理
    实际上是一个比较简单的处理,主要是利用了graalvm的nodejs可以方便的使用外部jar,我们就可以使用其他nodejsweb框架,结合spireoffice实现专业可靠的office转换处理预备主要是安装graalvm以及nodejsgraalvm已经不支持包含nodejs了,需要独立安装参考对于grralvm安装......
  • nodejs package.json
    package.json是用来识别项目并且处理项目的依赖关系的{"name":"名",//包名字"version":"1.0.0",//版本"description":"描述","main":"index.js",//入口文件"scripts":{//指定运行脚本......
  • 13_How to Deploy NodeJs app on Ubuntu in Production
     地址:https://www.codewithharry.com/blogpost/deploy-nodejs-app-on-ubuntu/ HowtodeployaNode.jsapplicationinproductionInthispost,wewillseehowtorunanddeployNodeJSappsinproduction.Followthestepsbelow:Step1-InstallNodejsLet�......
  • 在ubuntu上后台启动nodejs、使用pm2启动多个nodejs,
    前言很久以前淘到了一个非常简易的nodejs(聊天室)的源码,今天想把他放到我的ubuntu(server20.10)上。一、正文如果直接使用指令nodeapp.js,退出终端的时候会报错,可以使用pm2来实现后台运行!1.安装node.js和npmapt-getinstallnodejsapt-getinstallnpm安装好了之后可以使用whereisn......
  • 在centos7升级nodejs存在的无法切换版本的问题解决
    1.安装n管理工具npminstall-gn安装最新版本nlatest安装指定版本 n8.11.3 2.切换nodejs版本n选择已安装的版本 ο node/8.11.3  node/10.4.1查看当前版本node-v,下面表示已切换成功v8.13.3但问题来了,切换后,查看版本还是原来的v6.13.3,看下面 使用n切换nodejs......
  • nodejs express的部署简单记录(不详细)
    1.选用Linux系统2.node测试的包有expressknex3.Linux安装nodejs环境https://github.com/nodesource/distributions4.Linux系统权限(sudo)npm安装pm25.用pm2启动后端服务示例:pm2startindex.mjs6.注意端口号占用7.防火墙打开对应端口号 importexpressfr......
  • 在nodejs addon 环境下抓视频和音频数据包
    在nodeaddon环境下开发音视频,需要用到gyp。这个配置比较简单,很快可以配置好。比较坑的是,在vscode开发环境下,如果装了conda或者miniconda.有可能会影响gpy程序的编译。谨慎起见,可以看看控制台是否有(condabase)环境启动,可以想办法先脱离conda环境。废话不说直接......
  • nodejs调试工具
    Node应用调试工具debugger文档 http://nodejs.org/api/debugger.html内置的调试工具,支持基本的断点功能NodeInspector主页 https://github.com/node-inspector/node-inspector通过BlinkDeveloperTools提供的网页版JS调试工具来调试Node程序.NodeEclipse主页 http:......
  • nodejs vuejs java python 入门到高级视频
    多抽出一分钟学习,让你的生命更加精彩!高性能高可用Yii2.0电商平台仿京东商城高级组件MySQLLVSDocker+Kubernetes(k8s)微服务容器化实战实战Docker到Kubernetes技术系列视频教程@黑马JAVAEE19期⑭jQuery实战经典【No0066】尚学堂架构师视频06、微服务架构00、SpringBoot微服务架......
  • nodejs守护进程 PM2
    概述PM2是用于Node.js应用程序的生产环境进程管理器,内置负载均衡器。它允许你将应用程序持续运行,无需停机重新加载,并简化常见的系统管理任务。官方网站Github特性进程管理:PM2可以启动、停止和重启Node.js应用程序进程,确保应用程序一直处于运行状态。它还提供了容错机制,......