node http请求

这篇具有很好参考价值的文章主要介绍了node http请求。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。


theme: smartblue

持续创作,加速成长!这是我参与「掘金日新计划 · 6 月更文挑战」的第n天,点击查看活动详情

本文简介

点赞 + 关注 + 收藏 = 学会了

对于前端来说,网络请求主要就是用 ajax 的方式去处理。所以本文也会站在前端角度简单讲解 Node 中如何使用 http 模块。

前后端对接时,现在常用的请求方法有 GETPOSTPUTPATCHDELETE。当然,还有其他方法,但本文主要面向新手,希望能做到快速起步。所以本文只讲 GETPOST 这两种最最最常用的方法。

在敲代码前,你首先需要准备一个 编辑器(我用vs code)、浏览器、postman 还有安装好 Node.js

创建服务

Node.js 提供了 http 模块,可用于网络请求。

创建一个 js 文件,输入以下代码。(本例的文件命名为 index.js)

```js const http = require('http')

const server = http.createServer((res, req) => { req.end('hello world') })

server.listen(8000, () => { console.log('http://localhost:8000') }) ```

解释:

  • Node.js 使用 commonjs 语法,所以引入 http 模块使用了 require 的方法。
  • http 模块有一个 createServer 方法,该方法的参数是一个函数,函数里又有2个参数,res 是前端发送请求带过来的信息;req 是后端返回信息给前端时的一些方法和属性的集合。
  • 通过 req.end 方法,可以返回一段字符串给前端。
  • 通过 listen 方法可以设置需要监听的端口号,第二个参数是一个函数,我在控制台里输出 http://localhost:8000 是方便启动服务后方便自己打开这个地址。

使用 Node.js 运行上面的代码:

node index.js

运行完上面的命令,控制台应该会输出 http://localhost:8000 ,此时打开浏览器,输入 http://localhost:8000 后页面上会出现 “hello world”,证明服务创建成功,并且可以访问了。

node http请求

GET

其实上一步所用的也是 GET 方法来访问后端,但上一步并没有解析参数。

get 请求的参数通常是挂在 url 后面的,比如 http://localhost:8000?msg=hello

如果有参数,会用 ? 开始,然后使用 参数名=值 的写法。

如果有多个参数,会使用 & 将参数区分开来:

http://localhost:8000?key1=value1&key2=value2&key3=value3

Node.js 里,如果需要解析 url 的参数,可以使用 node:querystring 模块。

```js const http = require('http') // 引入 htpp 模块 const querystring = require('node:querystring') // 引入 node:querystring 模块解析url

const server = http.createServer((req, res) => { console.log('method: ', req.method) // 打印请求方法,GET

const url = req.url console.log('url: ', url) // 打印被访问的url

req.query = querystring.parse(url.split('?')[1]) // 通过 ? 问号 分隔参数,并使用 querystring.parse 解析问号后面的参数 console.log('query: ', req.query) // 输出参数 res.end(JSON.stringify(req.query)) // 将参数返回给前端 })

server.listen(8000, () => { console.log('http://localhost:8000') }) ```

执行上面的代码,并在浏览器访问 http://localhost:8000/?msg=123&name=leihou

在浏览器会显示出如下内容

node http请求

解析:

  • req.url 可以获取到当前访问后端的 url 路径
  • url.split('?')[1] 使用字符串的方法根据 ? 进行切割,然后获取后面那段
  • 使用 querystring.parse 方法将参数转换成对象的形式
  • res.end 将参数返回给前端。
  • 前端在浏览器地址栏输入 http://localhost:8000/?msg=123&name=leihou 时,后端会把参数返回,前端在页面中渲染出返回的参数。

POST

POST 请求会被 GET 更安全,同时也更麻烦。不能直接在浏览器地址栏输入 url 请求。

你可以写一段前端代码,通过 ajax 的方式请求。但本文主要讲解 Node.js ,所以我还是建议你使用 postman 发起 POST 请求。因为 postman 无需你处理跨域等问题。

```js const http = require('http') const server = http.createServer((req, res) => { if (req.method === 'POST') { // 数据格式 console.log('content-type', req.headers['content-type']) // 接收数据 let postData = '' req.on('data', chunk => { postData += chunk.toString() }) req.on('end', () => { console.log(postData) res.end('hello world') // 在这里返回,因为是异步 }) } })

server.listen(8000 () => { console.log('http://localhost:8000') }) ```

GET 不同,POST 接收数据需要用 req.on('data') 进行接收,用 req.on('end') 处理接收数据完成的操作。

Node.js 里除了接收数据外,其他用法和 GET 有点像。

最后在 postman 访问 http://localhost:8000 ,并在 Bodyraw 里填写 JSON 数据

node http请求

按下 Send 键后,控制台会输出 postman 发送过来的数据。

综合实例

如果理解了 GETPOST 请求的话,我们就可以尝试将这两个请求结合起来使用了。

```js const http = require('http') const querystring = require('node:querystring')

const server = http.createServer((req, res) => { const method = req.method const url = req.url const path = url.split('?')[0] const query = querystring.parse(url.split('?')[1])

// 设置返回格式 JSON res.setHeader('Content-type', 'application/json') // 这里返回JSON。如果是 text/html 返回html

// 返回的数据 const resData = { method, url, path, query, }

// 返回 if (method === 'GET') { res.end( JSON.stringify(resData) ) } if (method === 'POST') { let postData = '' req.on('data', chunk => { postData += chunk.toString() }) req.on('end', () => { resData.postData = JSON.parse(postData) // 返回 res.end( JSON.stringify(resData) ) }) } })

server.listen(8000, () => { console.log('http://localhost:8000') }) ```

上面的代码最主要是判断 methodGET 还是 POST ,因为两者接收数据的方式是不一样的。

你可以运行上面的代码,尝试在浏览器和 postman 各发送一下 GETPOST 测试一下。

推荐阅读

👍《『uni-app』web-view》

👍《『uni-app、小程序』蓝牙连接、读写数据全过程》

👍《Vue3 - $attrs 的几种用法(1个或多个根元素、Options API 和 Composition API)》

👍《Vue3 过10种组件通讯方式》文章来源地址https://www.toymoban.com/news/detail-425181.html

到了这里,关于node http请求的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【node写接口】 通过node 快速搭建一个服务器、get请求、post请求 小白入门

    从 前后端分离开始,接口大多由后端开发,前端负责请求接口将数据渲染到页面,某些时候需要自己搭建一台服务器用于一些文件图片请求或者进行后端相关知识的学习。 node写接口篇 主要学习前端如何用node写接口 ,一边学习 一遍记录。赶紧卷起来 今天,学习使用node搭建

    2024年02月07日
    浏览(49)
  • 【Jmeter】HTTP请求(HTTP Request) - 配置基本HTTP请求

    右击 Thread (线程组) 鼠标移至 Add (添加) → Sampler (取样器) 点击 HTTP Rrequest (HTTP请求头) 即可完成HTTP请求新建 进入 HTTP Rrequest (HTTP请求头) 页面 输入 Protocol (传输协议类型) ,不输入默认为HTTP请求 输入 Server Name or IP (服务器或IP地址) 输入 Port Number (端口号),没有端口号则不输入

    2024年02月14日
    浏览(44)
  • Nodejs基础6之HTTP模块的获取请求行和请求头、获取请求体、获取请求路径和查询字符串、http请求练习、设置HTTP响应报文、http响应练习

    含义 语法 重点掌握 请求方法 request.method * 请求版本 request.httpVersion 请求路径 request.url * URL 路径 require(‘url’).parse(request.url).pathname * URL 查询字符串 require(‘url’).parse(request.url, true).query * 请求头 request.headers * 请求体 request.on(‘data’, function(chunk){}),request.on(‘end’, functio

    2024年02月20日
    浏览(43)
  • HTTP协议概述 | 简析HTTP请求流程 | HTTP8种请求方法

    目录 🌏 HTTP的简单介绍 何为HTTP HTTP1.0与HTTP1.1 🌏 HTTP的请求方法 1、OPTIONS 2、HEAD 3、GET 4、POST 5、PUT 6、DELETE 7、TRACE 8、CONNECT 🌏 HTTP的工作原理 🌏 HTTP请求/响应的步骤 1、客户端连接到Web服务器 2、浏览器客户端发送HTTP请求 3、服务器接受请求并返回HTTP响应 4、释放连接TCP连

    2024年02月03日
    浏览(40)
  • Node.js GET/POST请求

    Node.js 中的 HTTP 模块提供了创建 HTTP 服务器和发送 HTTP 请求的功能。在本文中,我们将探讨如何使用 Node.js 发送 GET 和 POST 请求。 首先,您需要使用 http 模块发送 GET 请求。可以使用 http.get() 方法发送 GET 请求。它需要一个参数,即请求的 URL。该方法返回一个 http.ClientRequest 对

    2023年04月17日
    浏览(36)
  • Node的http模块

    一、JSON数据 1、什么是JSON:JavaScript Object Notation,是一种轻量级的前后端数据交互的格式(数据格式) 2、特点 (1)容易阅读和编写 (2)语言无关性:和任何的开发没有关系 (3)便于编译、解析 3、语法要求 (1) 是key-value :一个键对应一个值 (2)每个数据项之间用逗号

    2023年04月09日
    浏览(42)
  • node使用http模块

    提示:这里可以添加本文要记录的大概内容: 注意点: 解决乱码问题:res.setHeader(‘Content-Type’,‘text/plain;charset=utf8’); 文件夹中加上index.html、login.html、404.html文件 (1)作用:get主要用来获取数据,post用来提交数据。 (2)参数位置:get参数在url后面,post在请求体里面。

    2024年02月05日
    浏览(54)
  • node 学习 - HTTP模块

    Hypertext Transfer Protocol (超文本传输协议) 互连网应用最广泛的协议之一 协议:双方必须共同遵从的一组约定 http 协议对浏览器和服务器之间的通信进行约束 请求 = 请求报文 响应 = 响应报文 请求报文结构: 请求行:请求方法 + URL + HTTP版本号 GET [https://www.baidu.com/](https://ww

    2024年02月07日
    浏览(36)
  • node中的http模块

    http 模块是Node.js中的核心模块之一,它主要用于创建服务器和处理HTTP协议的请求和响应。 服务器 (Server):服务器是一种为其他计算机网络服务的计算机或系统,提供大量的储存空间,强大的数据处理能力和带宽。所谓服务,是指服务器在网络中起到一个中心角色,为其它

    2024年02月13日
    浏览(36)
  • node.js 解析post请求 方法一

    前提 :依旧以前面发的node.js服务器动态资源处理代码 具体见 http://t.csdnimg.cn/TSNW9为模板,在这基础上进行修改。与动态资源处理代码不同的是, 这次的用户信息我们借用表单来实现。post请求解析来获取和展示用户表单填写信息 1》代码难点: 解析post请求方法一的重点在于

    2024年04月25日
    浏览(41)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包