Node.js 使用 axios 直接读写 InfluxDB 的方法示例

作者:星河

时间:2026-10-22

浏览:232

本文介绍在 Node.js 中利用 axios 库直接通过 HTTP API 向 InfluxDB 写入数据的方法。重点解决 node-influx 库报错问题,强调数据需转换为二进制流并设置 Content-Type 为 application/octet-stream,提供完整代码示例。

文章目录

Node.js 直接读写 InfluxDB 的方法示例

在 Node.js 中向 InfluxDB 写入数据时,虽然存在 node-influx 库,但该库功能虽强,我在实际使用中却遇到了难以解决的错误。

既然通过 curl 命令可以成功向 InfluxDB 写入数据,但使用 node-influx 库却持续报错且无法排查,我决定放弃该库,转而寻找其他方案。

InfluxDB 提供了 HTTP API 接口,这意味着 Node.js 中的 axios 或 request 等 HTTP 客户端工具可以直接与 InfluxDB 进行交互。

需要注意的是,写入 InfluxDB 的数据格式必须为二进制流。

为此,需要执行以下两个步骤:

1. 将字符串转换为二进制数据。


const data = Buffer.from('mymeas,mytag=1 myfield=90')

2. 在请求头中设置 Content-Type 为二进制类型。


'Content-Type': 'application/octet-stream'

以下是完整的代码实现。


const axios = require('axios')
const data = Buffer.from('mylog,name=wdd error_count=2003,no_send=0')

axios({
 url: 'http://localhost:8923/write?db=poc&rp=poc',
 method: 'post',
 headers: {
  'Content-Type': 'application/octet-stream'
 },
 data: data
})
.then((res) => {
 console.log('ok') 
 // console.log(res)
})
.catch((err) => {
 console.log('err')
})

使用 axios 或 request 这类底层库的优势在于,任何通过 curl 成功执行的操作都可以转换为 axios 或 request 的请求,从而摆脱对其他高级封装库的依赖。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持本站。

实用工具推荐

电子包浆

绿化、压缩、噪点和虚拟水印,自由调节做旧程度。

使用 ›
图片压缩

选择画质和输出格式,预览压缩前后的大小。

使用 ›
相关文章