Node发出HTTP POST请求的方法实例小结

 更新时间:2023年05月25日 09:18:49   作者:他强任他强03  
这篇文章主要介绍了Node发出HTTP POST请求的方法,结合实例形式总结分析了三种常用的post请求操作方法,以及相关库操作注意事项,需要的朋友可以参考下

node发送post请求

There are many ways to perform an HTTP POST request in Node, depending on the abstraction level you want to use.

有多种方法可以在Node中执行HTTP POST请求,具体取决于您要使用的抽象级别。

The simplest way to perform an HTTP request using Node is to use the Axios library:

使用Node执行HTTP请求的最简单方法是使用Axios库 :

const axios = require('axios')
axios.post('https://flaviocopes.com/todos', {
  todo: 'Buy the milk'
})
.then((res) => {
  console.log(`statusCode: ${res.statusCode}`)
  console.log(res)
})
.catch((error) => {
  console.error(error)
}

Another way is to use the Request library:

另一种方法是使用Request库 :

const request = require('request')
request.post('https://flaviocopes.com/todos', {
  json: {
    todo: 'Buy the milk'
  }
}, (error, res, body) => {
  if (error) {
    console.error(error)
    return
  }
  console.log(`statusCode: ${res.statusCode}`)
  console.log(body)
}

The 2 ways highlighted up to now require the use of a 3rd party library.

到目前为止突出显示的2种方式都需要使用第三方库。

A POST request is possible just using the Node standard modules, although it’s more verbose than the two preceding options:

POST请求仅使用Node标准模块是可能的,尽管它比前面两个选项更冗长:

const https = require('https')
const data = JSON.stringify({
  todo: 'Buy the milk'
})
const options = {
  hostname: 'flaviocopes.com',
  port: 443,
  path: '/todos',
  method: 'POST',
  headers: {
    'Content-Type': 'application/json',
    'Content-Length': data.length
  }
}
const req = https.request(options, (res) => {
  console.log(`statusCode: ${res.statusCode}`)
  res.on('data', (d) => {
    process.stdout.write(d)
  })
})
req.on('error', (error) => {
  console.error(error)
})
req.write(data)
req.end()

PS:笔者曾经在使用http与https库的过程中,遇到过不同协议的报错问题,于是做了一个简单的替换,如上述代码中,使用了:

const req = https.request(options, (res) => {
....
})

笔者对此做了如下的修改:

let mod = null;//http、https 别名
if(url.indexOf('https://')!==-1){
    mod = https;
}else{
    mod = http;
}
const req = mod.request(options, (res) => {
....
})

此时,针对URL的协议类型就可以自动调用相应的模块。

相关文章

  • node+koa+canvas绘制出货单、收据票据的方法

    node+koa+canvas绘制出货单、收据票据的方法

    在生成票据需求中,我们会想到前端生成或者后端生成返回图片地址访问两个方法,前端生成则不需要调用接口,而后端是在完成整个流程时就进行生成然后把上传的地址保存数据库,这篇文章主要介绍了node+koa+canvas绘制出货单,收据,票据,需要的朋友可以参考下
    2022-09-09
  • NodeJS有难度的面试题(能答对几个)

    NodeJS有难度的面试题(能答对几个)

    这篇文章主要介绍了NodeJS有难度的面试题(能答对几个),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-10-10
  • npm安装yarn后找不到yarn报错的解决过程

    npm安装yarn后找不到yarn报错的解决过程

    这篇文章主要给大家介绍了关于npm安装yarn后找不到yarn报错的解决过程,文中通过图文介绍的非常详细,对遇到同样问题的同学具有一定的参考性,需要的朋友可以参考下
    2023-04-04
  • Node层模拟实现multipart表单的文件上传示例

    Node层模拟实现multipart表单的文件上传示例

    下面小编就为大家分享一篇Node层模拟实现multipart表单的文件上传示例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-01-01
  • NodeJs crypto加密制作token的实现代码

    NodeJs crypto加密制作token的实现代码

    这篇文章主要介绍了NodeJs crypto加密制作token的实现代码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-11-11
  • 深入理解Node.js中通用基础设计模式

    深入理解Node.js中通用基础设计模式

    大家在谈到设计模式时最先想到的就是 singletons, observers(观察者) 或 factories(工厂方法)。本文重点给大家介绍Node.JS一些基础模式的实现方法,感兴趣的朋友跟随脚本之家小编一起学习吧
    2017-09-09
  • 详解一些适用于Node.js的命名约定

    详解一些适用于Node.js的命名约定

    这篇文章主要介绍了详解一些适用于Node.js的命名约定,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-12-12
  • Node.js中的事件驱动编程详解

    Node.js中的事件驱动编程详解

    这篇文章主要介绍了Node.js中的事件驱动编程详解,本文主要讲解理论性知识,如什么是事件驱动编程、什么是闭包、闭包如何帮助异步编程等知识,需要的朋友可以参考下
    2014-08-08
  • Nodejs中Express 常用中间件 body-parser 实现解析

    Nodejs中Express 常用中间件 body-parser 实现解析

    这篇文章主要介绍了Nodejs中Express 常用中间件 body-parser 实现解析,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-05-05
  • node.js对于数据库MySQL基本操作实例总结【增删改查】

    node.js对于数据库MySQL基本操作实例总结【增删改查】

    这篇文章主要介绍了node.js对于数据库MySQL基本操作,结合实例形式总结分析了node.js针对mysql数据库基本配置、连接与增删改查相关操作技巧,需要的朋友可以参考下
    2023-04-04

最新评论