Node.js Connector

Node.js连接器支持的系统有:

CPU类型x64(64bit)aarch64aarch32
OS类型LinuxWin64Win32LinuxLinux
支持与否支持支持支持支持支持

Node.js连接器的使用参见视频教程

安装准备

安装Node.js连接器

用户可以通过npm来进行安装,也可以通过源代码src/connector/nodejs/ 来进行安装。具体安装步骤如下:

首先,通过npm安装node.js 连接器.

  1. npm install td2.0-connector

我们建议用户使用npm 安装node.js连接器。如果您没有安装npm, 可以将src/connector/nodejs/拷贝到您的nodejs 项目目录下

我们使用node-gyp和TDengine服务端进行交互。安装node.js 连接器之前,还需安装以下软件:

Linux

  • python (建议v2.7 , v3.x.x 目前还不支持)
  • node 2.0.6支持v12.x和v10.x,2.0.5及更早版本支持v10.x版本,其他版本可能存在包兼容性的问题。
  • make
  • c语言编译器比如GCC

Windows

安装方法1

使用微软的windows-build-toolscmd 命令行界面执行npm install --global --production windows-build-tools 即可安装所有的必备工具

安装方法2

手动安装以下工具:

如果以上步骤不能成功执行, 可以参考微软的node.js用户手册Microsoft’s Node.js Guidelines for Windows

如果在Windows 10 ARM 上使用ARM64 Node.js, 还需添加 “Visual C++ compilers and libraries for ARM64” 和 “Visual C++ ATL for ARM64”.

示例程序

示例程序源码位于install_directory/examples/nodejs,有:

Node-example.js node.js示例源程序 Node-example-raw.js

安装验证

在安装好TDengine客户端后,使用nodejsChecker.js程序能够验证当前环境是否支持nodejs方式访问Tdengine。

验证方法:

  1. 新建安装验证目录,例如:~/tdengine-test,拷贝github上nodejsChecker.js源程序。下载地址:(https://github.com/taosdata/TDengine/tree/develop/tests/examples/nodejs/nodejsChecker.js)。

  2. 在命令中执行以下命令:

  1. npm init -y
  2. npm install td2.0-connector
  3. node nodejsChecker.js host=localhost
  1. 执行以上步骤后,在命令行会输出nodejs连接Tdengine实例,并执行简答插入和查询的结果。

Node.js连接器的使用

以下是node.js 连接器的一些基本使用方法,详细的使用方法可参考TDengine Node.js connector

建立连接

使用node.js连接器时,必须先require td2.0-connector,然后使用 taos.connect 函数。taos.connect 函数必须提供的参数是host,其它参数在没有提供的情况下会使用如下的默认值。最后需要初始化cursor 来和TDengine服务端通信

  1. const taos = require('td2.0-connector');
  2. var conn = taos.connect({host:"127.0.0.1", user:"root", password:"taosdata", config:"/etc/taos",port:0})
  3. var cursor = conn.cursor(); // Initializing a new cursor

关闭连接可执行

  1. conn.close();

执行SQL和插入数据

对于DDL语句(例如create database、create table、use等),可以使用cursor的execute方法。代码如下:

  1. cursor.execute('create database if not exists test;')

以上代码创建了一个名称为test的数据库。对于DDL语句,一般没有返回值,cursor的execute返回值为0。

对于Insert语句,代码如下:

  1. var affectRows = cursor.execute('insert into test.weather values(now, 22.3, 34);')

execute方法的返回值为该语句影响的行数,上面的sql向test库的weather表中,插入了一条数据,则返回值affectRows为1。

TDengine目前还不支持update和delete语句。

查询

可通过 cursor.query 函数来查询数据库。

  1. var query = cursor.query('show databases;')

查询的结果可以通过 query.execute() 函数获取并打印出来

  1. var promise = query.execute();
  2. promise.then(function(result) {
  3. result.pretty();
  4. });

格式化查询语句还可以使用querybind方法。如下面的示例:query会自动将提供的数值填入查询语句的?里。

  1. var query = cursor.query('select * from meterinfo.meters where ts <= ? and areaid = ?;').bind(new Date(), 5);
  2. query.execute().then(function(result) {
  3. result.pretty();
  4. })

如果在query语句里提供第二个参数并设为true也可以立即获取查询结果。如下:

  1. var promise = cursor.query('select * from meterinfo.meters where v1 = 30;', true)
  2. promise.then(function(result) {
  3. result.pretty();
  4. })

异步函数

异步查询数据库的操作和上面类似,只需要在cursor.execute, TaosQuery.execute等函数后面加上_a

  1. var promise1 = cursor.query('select count(*), avg(v1), avg(v2) from meter1;').execute_a()
  2. var promise2 = cursor.query('select count(*), avg(v1), avg(v2) from meter2;').execute_a();
  3. promise1.then(function(result) {
  4. result.pretty();
  5. })
  6. promise2.then(function(result) {
  7. result.pretty();
  8. })

示例

node-example.js提供了一个使用NodeJS 连接器建表,插入天气数据并查询插入的数据的代码示例

node-example-raw.js同样是一个使用NodeJS 连接器建表,插入天气数据并查询插入的数据的代码示例,但和上面不同的是,该示例只使用cursor.