Skip to main content

TDengine Node.js Connector

@tdengine/rest 是 TDengine 的官方 Node.js 语言连接器。 Node.js 开发人员可以通过它开发可以存取 TDengine 集群数据的应用软件。另外@tdengine/restREST 连接器,它通过 REST 接口连接 TDengine 的运行实例。

Node.js 连接器源码托管在 GitHub

版本支持

请参考版本支持列表

安装步骤

安装前准备

使用 npm 安装

npm install @tdengine/rest

建立连接

const { options, connect } = require("@tdengine/rest");

async function test() {
options.url = process.env.TDENGINE_CLOUD_URL;
options.query = { token: process.env.TDENGINE_CLOUD_TOKEN };
let conn = connect(options);
let cursor = conn.cursor();
try {
let res = await cursor.query("show databases");
res.toString();
} catch (err) {
console.log(err);
}
}

test();

查看源码

更多示例程序

let conn = connect(options);
let cursor = conn.cursor();
(async()=>{
let result = await cursor.query('show databases');
// print query result as taos shell
result.toString();
// Get Result object, return Result object.
console.log(result.getResult());
// Get status, return 'succ'|'error'.
console.log(result.getStatus());
// Get head,return response head (Array<any>|undefined,when execute failed this is undefined).
console.log(result.getHead());
// Get Meta data, return Meta[]|undefined(when execute failed this is undefined).
console.log(result.getMeta());
// Get data,return Array<Array<any>>|undefined(when execute failed this is undefined).
console.log(result.getData());
// Get affect rows,return number|undefined(when execute failed this is undefined).
console.log(result.getAffectRows());
// Get command,return SQL send to server(need to `query(sql,false)`,set 'pure=false',default true).
console.log(result.getCommand());
// Get error code ,return number|undefined(when execute failed this is undefined).
console.log(result.getErrCode());
// Get error string,return string|undefined(when execute failed this is undefined).
console.log(result.getErrStr());
})()

查看源码

常见问题

  1. 使用 REST 连接需要启动 taosadapter。

    sudo systemctl start taosadapter
  2. Node.js 版本

    原生连接器 @tdengine/client 目前兼容的 Node.js 版本为:>=v10.20.0 <= v10.9.0 || >=v12.8.0 <= v12.9.1

  3. "Unable to establish connection","Unable to resolve FQDN"

一般都是因为配置 FQDN 不正确。 可以参考如何彻底搞懂 TDengine 的 FQDN

重要更新记录

原生连接器

package nameversionTDengine version说明
@tdengine/client3.0.03.0.0支持TDengine 3.0 且不与2.x 兼容。
td2.0-connector2.0.122.4.x;2.5.x;2.6.x修复 cursor.close() 报错的 bug。
td2.0-connector2.0.112.4.x;2.5.x;2.6.x支持绑定参数、json tag、schemaless 接口等功能。
td2.0-connector2.0.102.4.x;2.5.x;2.6.x支持连接管理,普通查询、连续查询、获取系统信息、订阅功能等功能。

REST 连接器

package nameversionTDengine version说明
@tdengine/rest3.0.03.0.0支持 TDegnine 3.0,且不与2.x 兼容。
td2.0-rest-connector1.0.72.4.x;2.5.x;2.6.x移除默认端口 6041。
td2.0-rest-connector1.0.62.4.x;2.5.x;2.6.x修复create,insert,update,alter 等SQL 执行返回的 affectRows 错误的bug。
td2.0-rest-connector1.0.52.4.x;2.5.x;2.6.x支持云服务 cloud Token;
td2.0-rest-connector1.0.32.4.x;2.5.x;2.6.x支持连接管理、普通查询、获取系统信息、错误信息、连续查询等功能。

API 参考

API 参考