Node.js 使用axios读写influxDB的方法示例

2018-10-26 46 zx

Node.js读写数据到influxDB,目前已经有一个库node-influx, 这个库功能非常强大,但是我个人使用这个库的时候,遇到无法解决的问题。

使用curl都可以写数据到influxDB,但是用node-influx总是报错,搞了半天也无法解决,就索性不用它了。

influxDB提供HTTP的API,也就是说Node.js中的axios或者request等HTTP客户端工具是可以直接和influx交互的。

需要注意的一点是,写到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或者requst这种底层库的好处是,你用curl做的成功的任何操作,都可以转换成axios或request的请求,而不依赖与其他库。

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

展开阅读全文

更多Javascript文章

Ajax::prototype 源码解读
Jan 22 47
AngularJS初始化过程分析(引导程序)
Dec 06 45
原生javaScript实现图片延时加载的方法
Dec 22 46
详解vue表单——小白速看
Apr 08 39
解决Mac node版本升级失败的问题
May 16 46
详解swiper在vue中的应用(以3.0为例)
Sep 20 49
详解webpack引用jquery(第三方模块)的三种办法
Aug 21 47
手机访问当前页面