使用 InfluxDB JavaScript 客户端库写入数据
使用 InfluxDB JavaScript 客户端库 从 Node.js 环境向 InfluxDB 写入数据。
JavaScript 客户端库包括以下便捷功能,用于向 InfluxDB 写入数据
- 将默认标签应用于数据点。
- 将点缓冲到批次中以优化数据传输。
- 在失败时自动重试请求。
- 为您的网络设置可选的 HTTP 代理地址。
开始之前
使用客户端库写入数据
实例化
InfluxDB
客户端。提供您的 InfluxDB URL 和 API 令牌。import {InfluxDB, Point} from '@influxdata/influxdb-client' const influxDB = new InfluxDB({YOUR_URL, YOUR_API_TOKEN})
替换以下内容
YOUR_URL
: InfluxDB URLYOUR_API_TOKEN
: InfluxDB API 令牌
使用客户端的
getWriteApi()
方法创建写入客户端。提供您的 InfluxDB 组织 ID 和存储桶名称。const writeApi = influxDB.getWriteApi(YOUR_ORG, YOUR_BUCKET)
替换以下内容
YOUR_ORG
: InfluxDB 组织 IDYOUR_BUCKET
: InfluxDB 存储桶名称
要将一个或多个 标签 应用于所有点,请使用
useDefaultTags()
方法。以键/值对的对象形式提供标签。writeApi.useDefaultTags({region: 'west'})
使用
Point()
构造函数创建点。- 调用构造函数并提供测量。
- 要添加一个或多个标签,请将
tag()
方法链接到构造函数。提供name
和value
。 - 要添加
float
类型的字段,请将floatField()
方法链接到构造函数。提供name
和value
。
const point1 = new Point('temperature') .tag('sensor_id', 'TLM010') .floatField('value', 24)
使用
writePoint()
方法将点写入到您的 InfluxDB 存储桶。最后,使用close()
方法刷新所有待处理的写入。该示例记录了新的数据点,后跟 “WRITE FINISHED” 到 stdout。writeApi.writePoint(point1) writeApi.close().then(() => { console.log('WRITE FINISHED') })
完整示例
curl --request POST \
"http://localhost:8086/api/v2/write?org=YOUR_ORG&bucket=YOUR_BUCKET&precision=ns" \
--header "Authorization: Token YOUR_API_TOKEN" \
--header "Content-Type: text/plain; charset=utf-8" \
--header "Accept: application/json" \
--data-binary '
airSensors,sensor_id=TLM0201 temperature=73.97038159354763,humidity=35.23103248356096,co=0.48445310567793615 1630424257000000000
airSensors,sensor_id=TLM0202 temperature=75.30007505999716,humidity=35.651929918691714,co=0.5141876544505826 1630424257000000000
'
'use strict'
/** @module write
* Writes a data point to InfluxDB using the Javascript client library with Node.js.
**/
import { InfluxDB, Point } from '@influxdata/influxdb-client'
/** Environment variables **/
const url = process.env.INFLUX_URL
const token = process.env.INFLUX_TOKEN
const org = process.env.INFLUX_ORG
const bucket = process.env.INFLUX_BUCKET
/**
* Instantiate the InfluxDB client
* with a configuration object.
**/
const influxDB = new InfluxDB({ url, token })
/**
* Create a write client from the getWriteApi method.
* Provide your `org` and `bucket`.
**/
const writeApi = influxDB.getWriteApi(org, bucket)
/**
* Apply default tags to all points.
**/
writeApi.useDefaultTags({ region: 'west' })
/**
* Create a point and write it to the buffer.
**/
const point1 = new Point('temperature')
.tag('sensor_id', 'TLM01')
.floatField('value', 24.0)
console.log(` ${point1}`)
writeApi.writePoint(point1)
/**
* Flush pending writes and close writeApi.
**/
writeApi.close().then(() => {
console.log('WRITE FINISHED')
})
要从文件运行示例,请设置您的 InfluxDB 环境变量并使用 node
执行 JavaScript 文件。
export INFLUX_URL=http://localhost:8086 && \
export INFLUX_TOKEN=YOUR_API_TOKEN && \
export INFLUX_ORG=YOUR_ORG && \
export INFLUX_BUCKET=YOUR_BUCKET && \
node write.js
响应代码
有关 InfluxDB API 响应代码的信息,请参阅 InfluxDB API 写入文档。
此页面是否对您有帮助?
感谢您的反馈!
支持和反馈
感谢您成为我们社区的一份子!我们欢迎并鼓励您提供关于 InfluxDB 和本文档的反馈和错误报告。要获得支持,请使用以下资源
拥有年度合同或支持合同的客户可以联系 InfluxData 支持。