文档文档

使用 InfluxDB v2 JavaScript 客户端库写入数据

使用 InfluxDB 3 客户端进行查询

InfluxDB 3 支持使用 InfluxDB v2 和 v1 工具的 写入数据兼容性终结点。然而,/api/v2/query API 终结点和相关工具(例如 InfluxDB v2 客户端库和 influx CLI)无法查询存储在 InfluxDB 3 Core 中的数据。

提供了 InfluxDB 3 客户端库,它们可与您的代码集成,以写入和查询存储在 InfluxDB 3 Core 中的数据。

比较可用于与 InfluxDB 3 Core 交互的工具。

使用 InfluxDB v2 JavaScript 客户端库 从 Node.js 环境将数据写入 InfluxDB。

JavaScript 客户端库包含以下用于将数据写入 InfluxDB 的便捷功能:

  • 将默认标签应用于数据点。
  • 将点缓冲到批处理中以优化数据传输。
  • 失败时自动重试请求。
  • 为您的网络设置可选的 HTTP 代理地址。

开始之前

使用客户端库写入数据

  1. 通过调用 new InfluxDB() 构造函数并传入您的 InfluxDB URL 和数据库令牌(您已在 安装部分 中设置的环境变量)来实例化客户端。

    import {InfluxDB, Point} from '@influxdata/influxdb-client'
    
    const influxDB = new InfluxDB({url: process.env.INFLUX_URL,
                                   token: process.env.INFLUX_TOKEN})
  2. 使用客户端的 getWriteApi() 方法创建 **写入客户端**。提供您的 InfluxDB 组织 ID 和数据库名称。

    const writeApi = influxDB.getWriteApi(process.env.INFLUX_ORG,
                                           process.env.INFLUX_DATABASE)
  3. 要将一个或多个 标签 应用于所有点,请使用 useDefaultTags() 方法。将标签作为键/值对的对象提供。

    writeApi.useDefaultTags({region: 'west'})
  4. 使用 Point() 构造函数创建

    1. 调用构造函数并提供一个 测量
    2. 要添加一个或多个标签,请将 tag() 方法链接到构造函数。提供一个 namevalue
    3. 要添加一个 float 类型的字段,请将 floatField() 方法链接到构造函数。提供一个 namevalue
    const point1 = new Point('temperature')
      .tag('sensor_id', 'TLM010')
      .floatField('value', 24.0)
  5. 使用 writePoint() 方法将点写入您的 InfluxDB 存储桶。最后,使用 close() 方法刷新所有待处理的写入。该示例将新的数据点以及“WRITE FINISHED”记录到 stdout。

    writeApi.writePoint(point1)
    
    writeApi.close().then(() => {
      console.log('WRITE FINISHED')
    })

完整示例

'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'

/**
 * Instantiate the InfluxDB client
 * with a configuration object.
 **/
const influxDB = new InfluxDB({url: process.env.INFLUX_URL,
                              token: process.env.INFLUX_TOKEN})

/**
 * Create a write client from the getWriteApi method.
 * Provide your org and database.
 **/
const writeApi = influxDB.getWriteApi(process.env.INFLUX_ORG,
                                      process.env.INFLUX_DATABASE)

/**
 * 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')
})

在您的终端中,在 设置了环境变量或 env.js 文件 的情况下,运行以下命令来执行 JavaScript 文件:

node write.js

响应码

有关 **InfluxDB API 响应代码** 的信息,请参阅 InfluxDB API 写入文档


此页面是否有帮助?

感谢您的反馈!


InfluxDB 3.8 新特性

InfluxDB 3.8 和 InfluxDB 3 Explorer 1.6 的主要增强功能。

查看博客文章

InfluxDB 3.8 现已适用于 Core 和 Enterprise 版本,同时发布了 InfluxDB 3 Explorer UI 的 1.6 版本。本次发布着重于操作成熟度,以及如何更轻松地部署、管理和可靠地运行 InfluxDB。

更多信息,请查看

InfluxDB Docker 的 latest 标签将指向 InfluxDB 3 Core

在 **2026 年 2 月 3 日**,InfluxDB Docker 镜像的 latest 标签将指向 InfluxDB 3 Core。为避免意外升级,请在您的 Docker 部署中使用特定的版本标签。

如果使用 Docker 来安装和运行 InfluxDB,latest 标签将指向 InfluxDB 3 Core。为避免意外升级,请在您的 Docker 部署中使用特定的版本标签。例如,如果使用 Docker 运行 InfluxDB v2,请将 latest 版本标签替换为 Docker pull 命令中的特定版本标签 — 例如

docker pull influxdb:2