Node.js 使用 axios 直接读写 InfluxDB 的方法示例
本文介绍在 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 的请求,从而摆脱对其他高级封装库的依赖。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持本站。
Node.js 安装配置与第一个 HTTP 服务器编写
2026-11-05 11:41:40
怎么使用 nvm 管理并平滑升级 Node.js 版本
2026-11-04 23:15:07
Node.js 怎么使用 zlib 模块解压 gzip 和 deflate
2026-11-03 23:40:50
直接覆盖安装还是用版本管理器?Node.js 升级方式对比
2026-11-03 22:59:07
Express.js 是什么:Node.js Web 框架核心概念与适用场景
2026-11-03 20:00:12
