diff --git a/examples/nodejs/node-example-raw.js b/examples/nodejs/node-example-raw.js deleted file mode 100644 index 058a50c4c3f0f7d44da4bdcc4fc54b81d7e1bc38..0000000000000000000000000000000000000000 --- a/examples/nodejs/node-example-raw.js +++ /dev/null @@ -1,135 +0,0 @@ -/* This example is to show how to use the td-connector through the cursor only and is a bit more raw. - * No promises, object wrappers around data, functions that prettify the data, or anything. - * The cursor will generally use callback functions over promises, and return and store the raw data from the C Interface. - * It is advised to use the td-connector through the cursor and the TaosQuery class amongst other higher level APIs. -*/ - -// Get the td-connector package -const taos = require('td2.0-connector'); - -/* We will connect to TDengine by passing an object comprised of connection options to taos.connect and store the - * connection to the variable conn - */ -/* - * Connection Options - * host: the host to connect to - * user: the use to login as - * password: the password for the above user to login - * config: the location of the taos.cfg file, by default it is in /etc/taos - * port: the port we connect through - */ -var conn = taos.connect({host:"127.0.0.1", user:"root", password:"taosdata", config:"/etc/taos",port:0}); - -// Initialize our TDengineCursor, which we use to interact with TDengine -var c1 = conn.cursor(); - -// c1.execute(query) will execute the query -// Let's create a database named db -try { - c1.execute('create database if not exists db;'); -} -catch(err) { - conn.close(); - throw err; -} - -// Now we will use database db -try { - c1.execute('use db;'); -} -catch (err) { - conn.close(); - throw err; -} - -// Let's create a table called weather -// which stores some weather data like humidity, AQI (air quality index), temperature, and some notes as text -try { - c1.execute('create table if not exists weather (ts timestamp, humidity smallint, aqi int, temperature float, notes binary(30));'); -} -catch (err) { - conn.close(); - throw err; -} - -// Let's get the description of the table weather -try { - c1.execute('describe db.weather'); -} -catch (err) { - conn.close(); - throw err; -} - -// To get results, we run the function c1.fetchall() -// It only returns the query results as an array of result rows, but also stores the latest results in c1.data -try { - var tableDesc = c1.fetchall(); // The description variable here is equal to c1.data; - console.log(tableDesc); -} -catch (err) { - conn.close(); - throw err; -} - -// Let's try to insert some random generated data to test with - -let stime = new Date(); -let interval = 1000; - -// Timestamps must be in the form of "YYYY-MM-DD HH:MM:SS.MMM" if they are in milliseconds -// "YYYY-MM-DD HH:MM:SS.MMMMMM" if they are in microseconds -// Thus, we create the following function to convert a javascript Date object to the correct formatting -function convertDateToTS(date) { - let tsArr = date.toISOString().split("T") - return "\"" + tsArr[0] + " " + tsArr[1].substring(0, tsArr[1].length-1) + "\""; -} - -try { - for (let i = 0; i < 10000; i++) { - stime.setMilliseconds(stime.getMilliseconds() + interval); - let insertData = [convertDateToTS(stime), - parseInt(Math.random()*100), - parseInt(Math.random()*300), - parseFloat(Math.random()*10 + 30), - "\"random note!\""]; - c1.execute('insert into db.weather values(' + insertData.join(',') + ' );'); - } -} -catch (err) { - conn.close(); - throw err; -} - -// Now let's look at our newly inserted data -var retrievedData; -try { - c1.execute('select * from db.weather;') - retrievedData = c1.fetchall(); - - // c1.fields stores the names of each column retrieved - console.log(c1.fields); - console.log(retrievedData); - // timestamps retrieved are always JS Date Objects - // Numbers are numbers, big ints are big ints, and strings are strings -} -catch (err) { - conn.close(); - throw err; -} - -// Let's try running some basic functions -try { - c1.execute('select count(*), avg(temperature), max(temperature), min(temperature), stddev(temperature) from db.weather;') - c1.fetchall(); - console.log(c1.fields); - console.log(c1.data); -} -catch(err) { - conn.close(); - throw err; -} - -conn.close(); - -// Feel free to fork this repository or copy this code and start developing your own apps and backends with NodeJS and TDengine! diff --git a/examples/nodejs/node-example.js b/examples/nodejs/node-example.js deleted file mode 100644 index bfdd9e49a08fc1d6c20f3bdafbb84a500986b9fd..0000000000000000000000000000000000000000 --- a/examples/nodejs/node-example.js +++ /dev/null @@ -1,153 +0,0 @@ -/* This example is to show the preferred way to use the td-connector */ -/* To run, enter node path/to/node-example.js */ -// Get the td-connector package -const taos = require('td2.0-connector'); - -/* We will connect to TDengine by passing an object comprised of connection options to taos.connect and store the - * connection to the variable conn - */ -/* - * Connection Options - * host: the host to connect to - * user: the use to login as - * password: the password for the above user to login - * config: the location of the taos.cfg file, by default it is in /etc/taos - * port: the port we connect through - */ -var conn = taos.connect({host:"127.0.0.1", user:"root", password:"taosdata", config:"/etc/taos",port:0}); - -// Initialize our TDengineCursor, which we use to interact with TDengine -var c1 = conn.cursor(); - -// c1.query(query) will return a TaosQuery object, of which then we can execute. The execute function then returns a promise -// Let's create a database named db -try { - c1.execute('create database if not exists db;'); - //var query = c1.query('create database if not exists db;'); - //query.execute(); -} -catch(err) { - conn.close(); - throw err; -} - -// Now we will use database db. As this query won't return any results, -// we can simplify the code and directly use the c1.execute() function. No need for a TaosQuery object to wrap around the query -try { - c1.execute('use db;'); -} -catch (err) { - conn.close(); - throw err; -} - -// Let's create a table called weather -// which stores some weather data like humidity, AQI (air quality index), temperature, and some notes as text -// We can also immedietely execute a TaosQuery object by passing true as the secodn argument -// This will then return a promise that we can then attach a callback function to -try { - var promise = c1.query('create table if not exists weather (ts timestamp, humidity smallint, aqi int, temperature float, notes binary(30));', true); - promise.then(function(){ - console.log("Table created!"); - }).catch(function() { - console.log("Table couldn't be created.") - }); -} -catch (err) { - conn.close(); - throw err; -} - -// Let's get the description of the table weather -// When using a TaosQuery object and then executing it, upon success it returns a TaosResult object, which is a wrapper around the -// retrieved data and allows us to easily access data and manipulate or display it. -try { - c1.query('describe db.weather;').execute().then(function(result){ - // Result is an instance of TaosResult and has the function pretty() which instantly logs a prettified version to the console - result.pretty(); - }); -} -catch (err) { - conn.close(); - throw err; -} - - -Date.prototype.Format = function(fmt){ - var o = { - 'M+': this.getMonth() + 1, - 'd+': this.getDate(), - 'H+': this.getHours(), - 'm+': this.getMinutes(), - 's+': this.getSeconds(), - 'S+': this.getMilliseconds() - }; - if (/(y+)/.test(fmt)) { - fmt = fmt.replace(RegExp.$1, (this.getFullYear() + '').substr(4 - RegExp.$1.length)); - } - for (var k in o) { - if (new RegExp('(' + k + ')').test(fmt)) { - fmt = fmt.replace(RegExp.$1, (RegExp.$1.length == 1) ? (o[k]) : (('00' + o[k]).substr(String(o[k]).length))); - } - } - return fmt; -} - - -// Let's try to insert some random generated data to test with -// We will use the bind function of the TaosQuery object to easily bind values to question marks in the query -// For Timestamps, a normal Datetime object or TaosTimestamp or milliseconds can be passed in through the bind function -let stime = new Date(); -let interval = 1000; -try { - for (let i = 0; i < 1000; i++) { - stime.setMilliseconds(stime.getMilliseconds() + interval); - - //console.log(stime.Format('yyyy-MM-dd HH:mm:ss.SSS')); - - let insertData = [stime, - parseInt(Math.random()*100), - parseInt(Math.random()*300), - parseFloat(Math.random()*10 + 30), - "Note"]; - //c1.execute('insert into db.weather values(' + insertData.join(',') + ' );'); - - //var query = c1.query('insert into db.weather values(?, ?, ?, ?, ?);').bind(insertData); - //query.execute(); - c1.execute('insert into db.weather values(\"'+stime.Format('yyyy-MM-dd HH:mm:ss.SSS')+'\",'+parseInt(Math.random() * 100)+','+parseInt(Math.random() * 300)+','+parseFloat(Math.random()*10 + 30)+',"Note");'); - } -}catch (err) { - conn.close(); - throw err; -} - -// Now let's look at our newly inserted data -var retrievedData; -try { - c1.query('select * from db.weather limit 5 offset 100;', true).then(function(result){ - //result.pretty(); - console.log('=========>'+JSON.stringify(result)); - // Neat! - }); - -} -catch (err) { - conn.close(); - throw err; -} - -// Let's try running some basic functions -try { - c1.query('select count(*), avg(temperature), max(temperature), min(temperature), stddev(temperature) from db.weather;', true) - .then(function(result) { - result.pretty(); - }) -} -catch(err) { - conn.close(); - throw err; -} - -conn.close(); - -// Feel free to fork this repository or copy this code and start developing your own apps and backends with NodeJS and TDengine! diff --git a/examples/nodejs/nodejsChecker.js b/examples/nodejs/nodejsChecker.js index e634a54ea1c56310bae7d38188590a0d7862f953..58b27dad67ba578b3b53194d3de73373991c2240 100644 --- a/examples/nodejs/nodejsChecker.js +++ b/examples/nodejs/nodejsChecker.js @@ -1,29 +1,27 @@ -const taos = require('td2.0-connector'); -//const taos = require('../../../src/connector/nodejs/'); - +const taos = require("@tdengine/client"); var host = null; var port = 6030; for(var i = 2; i < global.process.argv.length; i++){ - var key = global.process.argv[i].split("=")[0]; - var value = global.process.argv[i].split("=")[1]; - - if("host" == key){ - host = value; - } - if("port" == key){ - port = value; - } + var key = global.process.argv[i].split("=")[0]; + var value = global.process.argv[i].split("=")[1]; + + if("host" == key){ + host = value; + } + if("port" == key){ + port = value; + } } if(host == null){ - console.log("Usage: node nodejsChecker.js host= port="); - process.exit(0); + console.log("Usage: node nodejsChecker.js host= port="); + process.exit(0); } // establish connection var conn = taos.connect({host:host, user:"root", password:"taosdata",port:port}); -var cursor = conn.cursor(); +var cursor = conn.cursor(); // create database executeSql("create database if not exists test", 0); // use db @@ -40,22 +38,22 @@ executeQuery("select * from test.weather"); conn.close(); function executeQuery(sql){ - var start = new Date().getTime(); - var promise = cursor.query(sql, true); - var end = new Date().getTime(); - promise.then(function(result){ - printSql(sql, result != null,(end - start)); - result.pretty(); - }); + var start = new Date().getTime(); + var promise = cursor.query(sql, true); + var end = new Date().getTime(); + promise.then(function(result){ + printSql(sql, result != null,(end - start)); + result.pretty(); + }); } function executeSql(sql, affectRows){ - var start = new Date().getTime(); - var promise = cursor.execute(sql); - var end = new Date().getTime(); - printSql(sql, promise == affectRows, (end - start)); + var start = new Date().getTime(); + var promise = cursor.execute(sql); + var end = new Date().getTime(); + printSql(sql, promise == affectRows, (end - start)); } function printSql(sql, succeed, cost){ - console.log("[ "+(succeed ? "OK" : "ERROR!")+" ] time cost: " + cost + " ms, execute statement ====> " + sql); -} + console.log("[ "+(succeed ? "OK" : "ERROR!")+" ] time cost: " + cost + " ms, execute statement ====> " + sql); +} \ No newline at end of file diff --git a/examples/nodejs/test1970.js b/examples/nodejs/test1970.js deleted file mode 100644 index 5177a7371e9a07fa7b548936ff038c1f2a29bc1f..0000000000000000000000000000000000000000 --- a/examples/nodejs/test1970.js +++ /dev/null @@ -1,125 +0,0 @@ -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 c1 = conn.cursor(); // Initializing a new cursor - -let stime = new Date(); -let interval = 1000; - -function convertDateToTS(date) { - let tsArr = date.toISOString().split("T") - return "\"" + tsArr[0] + " " + tsArr[1].substring(0, tsArr[1].length - 1) + "\""; -} - -function R(l, r) { - return Math.random() * (r - l) - r; -} - -function randomBool() { - if (Math.random() < 0.5) { - return true; - } - return false; -} - -// Initialize -const dbname = "nodejs_1970_db"; -const tbname = "t1"; - -let dropDB = "drop database if exists " + dbname -console.log(dropDB);//asdasdasd -c1.execute(dropDB);///asdasd - -let createDB = "create database " + dbname + " keep 36500" -console.log(createDB); -c1.execute(createDB); - -let useTbl = "use " + dbname -console.log(useTbl) -c1.execute(useTbl); - -let createTbl = "create table if not exists " + tbname + "(ts timestamp,id int)" -console.log(createTbl); -c1.execute(createTbl); - -//1969-12-31 23:59:59.999 -//1970-01-01 00:00:00.000 -//1970-01-01 07:59:59.999 -//1970-01-01 08:00:00.000a -//1628928479484 2021-08-14 08:07:59.484 -let sql1 = "insert into " + dbname + "." + tbname + " values('1969-12-31 23:59:59.999',1)" -console.log(sql1); -c1.execute(sql1); - -let sql2 = "insert into " + dbname + "." + tbname + " values('1970-01-01 00:00:00.000',2)" -console.log(sql2); -c1.execute(sql2); - -let sql3 = "insert into " + dbname + "." + tbname + " values('1970-01-01 07:59:59.999',3)" -console.log(sql3); -c1.execute(sql3); - -let sql4 = "insert into " + dbname + "." + tbname + " values('1970-01-01 08:00:00.000',4)" -console.log(sql4); -c1.execute(sql4); - -let sql5 = "insert into " + dbname + "." + tbname + " values('2021-08-14 08:07:59.484',5)" -console.log(sql5); -c1.execute(sql5); - -// Select -let query1 = "select * from " + dbname + "." + tbname -console.log(query1); -c1.execute(query1); - -var d = c1.fetchall(); -console.log(c1.fields); -for (let i = 0; i < d.length; i++) - console.log(d[i][0].valueOf()); - -//initialize -let initSql1 = "drop table if exists " + tbname -console.log(initSql1); -c1.execute(initSql1); - -console.log(createTbl); -c1.execute(createTbl); -c1.execute(useTbl) - -//-28800001 1969-12-31 23:59:59.999 -//-28800000 1970-01-01 00:00:00.000 -//-1 1970-01-01 07:59:59.999 -//0 1970-01-01 08:00:00.00 -//1628928479484 2021-08-14 08:07:59.484 -let sql11 = "insert into " + dbname + "." + tbname + " values(-28800001,11)"; -console.log(sql11); -c1.execute(sql11); - -let sql12 = "insert into " + dbname + "." + tbname + " values(-28800000,12)" -console.log(sql12); -c1.execute(sql12); - -let sql13 = "insert into " + dbname + "." + tbname + " values(-1,13)" -console.log(sql13); -c1.execute(sql13); - -let sql14 = "insert into " + dbname + "." + tbname + " values(0,14)" -console.log(sql14); -c1.execute(sql14); - -let sql15 = "insert into " + dbname + "." + tbname + " values(1628928479484,15)" -console.log(sql15); -c1.execute(sql15); - -// Select -console.log(query1); -c1.execute(query1); - -var d = c1.fetchall(); -console.log(c1.fields); -for (let i = 0; i < d.length; i++) - console.log(d[i][0].valueOf()); - -setTimeout(function () { - conn.close(); -}, 2000); -