Node.js Connector
Node.js连接器支持的系统有:
CPU类型 | x64(64bit) | aarch64 | aarch32 | ||
---|---|---|---|---|---|
OS类型 | Linux | Win64 | Win32 | Linux | Linux |
支持与否 | 支持 | 支持 | 支持 | 支持 | 支持 |
Node.js连接器的使用参见视频教程
安装准备
- 应用驱动安装请参考安装连接器驱动步骤。
安装Node.js连接器
用户可以通过npm来进行安装,也可以通过源代码src/connector/nodejs/ 来进行安装。具体安装步骤如下:
首先,通过npm安装node.js 连接器.
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-tools在cmd
命令行界面执行npm install --global --production windows-build-tools
即可安装所有的必备工具
安装方法2
手动安装以下工具:
- 安装Visual Studio相关:Visual Studio Build 工具 或者 Visual Studio 2017 Community
- 安装 Python 2.7(
v3.x.x
暂不支持) 并执行npm config set python python2.7
- 进入
cmd
命令行界面,npm config set msvs_version 2017
如果以上步骤不能成功执行, 可以参考微软的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。
验证方法:
新建安装验证目录,例如:
~/tdengine-test
,拷贝github上nodejsChecker.js源程序。下载地址:(https://github.com/taosdata/TDengine/tree/develop/tests/examples/nodejs/nodejsChecker.js)。在命令中执行以下命令:
npm init -y
npm install td2.0-connector
node nodejsChecker.js host=localhost
- 执行以上步骤后,在命令行会输出nodejs连接Tdengine实例,并执行简答插入和查询的结果。
Node.js连接器的使用
以下是node.js 连接器的一些基本使用方法,详细的使用方法可参考TDengine Node.js connector
建立连接
使用node.js连接器时,必须先require td2.0-connector
,然后使用 taos.connect
函数。taos.connect
函数必须提供的参数是host
,其它参数在没有提供的情况下会使用如下的默认值。最后需要初始化cursor
来和TDengine服务端通信
const taos = require('td2.0-connector');
var conn = taos.connect({host:"127.0.0.1", user:"root", password:"taosdata", config:"/etc/taos",port:0})
var cursor = conn.cursor(); // Initializing a new cursor
关闭连接可执行
conn.close();
执行SQL和插入数据
对于DDL语句(例如create database、create table、use等),可以使用cursor的execute方法。代码如下:
cursor.execute('create database if not exists test;')
以上代码创建了一个名称为test的数据库。对于DDL语句,一般没有返回值,cursor的execute返回值为0。
对于Insert语句,代码如下:
var affectRows = cursor.execute('insert into test.weather values(now, 22.3, 34);')
execute方法的返回值为该语句影响的行数,上面的sql向test库的weather表中,插入了一条数据,则返回值affectRows为1。
TDengine目前还不支持update和delete语句。
查询
可通过 cursor.query
函数来查询数据库。
var query = cursor.query('show databases;')
查询的结果可以通过 query.execute()
函数获取并打印出来
var promise = query.execute();
promise.then(function(result) {
result.pretty();
});
格式化查询语句还可以使用query
的bind
方法。如下面的示例:query
会自动将提供的数值填入查询语句的?
里。
var query = cursor.query('select * from meterinfo.meters where ts <= ? and areaid = ?;').bind(new Date(), 5);
query.execute().then(function(result) {
result.pretty();
})
如果在query
语句里提供第二个参数并设为true
也可以立即获取查询结果。如下:
var promise = cursor.query('select * from meterinfo.meters where v1 = 30;', true)
promise.then(function(result) {
result.pretty();
})
异步函数
异步查询数据库的操作和上面类似,只需要在cursor.execute
, TaosQuery.execute
等函数后面加上_a
。
var promise1 = cursor.query('select count(*), avg(v1), avg(v2) from meter1;').execute_a()
var promise2 = cursor.query('select count(*), avg(v1), avg(v2) from meter2;').execute_a();
promise1.then(function(result) {
result.pretty();
})
promise2.then(function(result) {
result.pretty();
})
示例
node-example.js提供了一个使用NodeJS 连接器建表,插入天气数据并查询插入的数据的代码示例
node-example-raw.js同样是一个使用NodeJS 连接器建表,插入天气数据并查询插入的数据的代码示例,但和上面不同的是,该示例只使用cursor
.