| import{_ as n,c as a,b as e,o as l}from"./app-pmkzp6TS.js";const t={};function o(p,s){return l(),a("div",null,[...s[0]||(s[0]=[e(`<h1 id="node-js-native-api" tabindex="-1"><a class="header-anchor" href="#node-js-native-api"><span>Node.js Native API</span></a></h1><p>Apache IoTDB uses Thrift as a cross-language RPC-framework so access to IoTDB can be achieved through the interfaces provided by Thrift.<br> This document will introduce how to generate a native Node.js interface that can be used to access IoTDB.</p><h2 id="dependents" tabindex="-1"><a class="header-anchor" href="#dependents"><span>Dependents</span></a></h2><ul><li>JDK >= 1.8</li><li>Node.js >= 16.0.0</li><li>Linux、Macos or like unix</li><li>Windows+bash</li></ul><h2 id="generate-the-node-js-native-interface" tabindex="-1"><a class="header-anchor" href="#generate-the-node-js-native-interface"><span>Generate the Node.js native interface</span></a></h2><ol><li><p>Find the <code>pom.xml</code> file in the root directory of the IoTDB <a href="https://github.com/apache/iotdb" target="_blank" rel="noopener noreferrer">source code</a> folder.</p></li><li><p>Open the <code>pom.xml</code> file and find the following content:</p><div class="language-xml line-numbers-mode" data-highlighter="shiki" data-ext="xml" style="background-color:#282c34;color:#abb2bf;"><pre class="shiki one-dark-pro vp-code"><code class="language-xml"><span class="line"><span style="color:#ABB2BF;"> <</span><span style="color:#E06C75;">execution</span><span style="color:#ABB2BF;">></span></span> |
| <span class="line"><span style="color:#ABB2BF;"> <</span><span style="color:#E06C75;">id</span><span style="color:#ABB2BF;">>generate-thrift-sources-python</</span><span style="color:#E06C75;">id</span><span style="color:#ABB2BF;">></span></span> |
| <span class="line"><span style="color:#ABB2BF;"> <</span><span style="color:#E06C75;">phase</span><span style="color:#ABB2BF;">>generate-sources</</span><span style="color:#E06C75;">phase</span><span style="color:#ABB2BF;">></span></span> |
| <span class="line"><span style="color:#ABB2BF;"> <</span><span style="color:#E06C75;">goals</span><span style="color:#ABB2BF;">></span></span> |
| <span class="line"><span style="color:#ABB2BF;"> <</span><span style="color:#E06C75;">goal</span><span style="color:#ABB2BF;">>compile</</span><span style="color:#E06C75;">goal</span><span style="color:#ABB2BF;">></span></span> |
| <span class="line"><span style="color:#ABB2BF;"> </</span><span style="color:#E06C75;">goals</span><span style="color:#ABB2BF;">></span></span> |
| <span class="line"><span style="color:#ABB2BF;"> <</span><span style="color:#E06C75;">configuration</span><span style="color:#ABB2BF;">></span></span> |
| <span class="line"><span style="color:#ABB2BF;"> <</span><span style="color:#E06C75;">generator</span><span style="color:#ABB2BF;">>py</</span><span style="color:#E06C75;">generator</span><span style="color:#ABB2BF;">></span></span> |
| <span class="line"><span style="color:#ABB2BF;"> <</span><span style="color:#E06C75;">outputDirectory</span><span style="color:#ABB2BF;">>\${project.build.directory}/generated-sources-python/</</span><span style="color:#E06C75;">outputDirectory</span><span style="color:#ABB2BF;">></span></span> |
| <span class="line"><span style="color:#ABB2BF;"> </</span><span style="color:#E06C75;">configuration</span><span style="color:#ABB2BF;">></span></span> |
| <span class="line"><span style="color:#ABB2BF;"> </</span><span style="color:#E06C75;">execution</span><span style="color:#ABB2BF;">></span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div></li><li><p>Duplicate this block and change the <code>id</code>, <code>generator</code> and <code>outputDirectory</code> to this:</p><div class="language-xml line-numbers-mode" data-highlighter="shiki" data-ext="xml" style="background-color:#282c34;color:#abb2bf;"><pre class="shiki one-dark-pro vp-code"><code class="language-xml"><span class="line"><span style="color:#ABB2BF;"> <</span><span style="color:#E06C75;">execution</span><span style="color:#ABB2BF;">></span></span> |
| <span class="line"><span style="color:#ABB2BF;"> <</span><span style="color:#E06C75;">id</span><span style="color:#ABB2BF;">>generate-thrift-sources-nodejs</</span><span style="color:#E06C75;">id</span><span style="color:#ABB2BF;">></span></span> |
| <span class="line"><span style="color:#ABB2BF;"> <</span><span style="color:#E06C75;">phase</span><span style="color:#ABB2BF;">>generate-sources</</span><span style="color:#E06C75;">phase</span><span style="color:#ABB2BF;">></span></span> |
| <span class="line"><span style="color:#ABB2BF;"> <</span><span style="color:#E06C75;">goals</span><span style="color:#ABB2BF;">></span></span> |
| <span class="line"><span style="color:#ABB2BF;"> <</span><span style="color:#E06C75;">goal</span><span style="color:#ABB2BF;">>compile</</span><span style="color:#E06C75;">goal</span><span style="color:#ABB2BF;">></span></span> |
| <span class="line"><span style="color:#ABB2BF;"> </</span><span style="color:#E06C75;">goals</span><span style="color:#ABB2BF;">></span></span> |
| <span class="line"><span style="color:#ABB2BF;"> <</span><span style="color:#E06C75;">configuration</span><span style="color:#ABB2BF;">></span></span> |
| <span class="line"><span style="color:#ABB2BF;"> <</span><span style="color:#E06C75;">generator</span><span style="color:#ABB2BF;">>js:node</</span><span style="color:#E06C75;">generator</span><span style="color:#ABB2BF;">></span></span> |
| <span class="line"><span style="color:#ABB2BF;"> <</span><span style="color:#E06C75;">outputDirectory</span><span style="color:#ABB2BF;">>\${project.build.directory}/generated-sources-nodejs/</</span><span style="color:#E06C75;">outputDirectory</span><span style="color:#ABB2BF;">></span></span> |
| <span class="line"><span style="color:#ABB2BF;"> </</span><span style="color:#E06C75;">configuration</span><span style="color:#ABB2BF;">></span></span> |
| <span class="line"><span style="color:#ABB2BF;"> </</span><span style="color:#E06C75;">execution</span><span style="color:#ABB2BF;">></span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div></li><li><p>In the root directory of the IoTDB <a href="https://github.com/apache/iotdb" target="_blank" rel="noopener noreferrer">source code</a> folder,run <code>mvn clean generate-sources</code>.</p><p>This command will automatically delete the files in <code>iotdb/iotdb-protocol/thrift/target</code> and <code>iotdb/iotdb-protocol/thrift-commons/target</code>, and repopulate the folder with the newly generated files.<br> The newly generated JavaScript sources will be located in <code>iotdb/iotdb-protocol/thrift/target/generated-sources-nodejs</code> in the various modules of the <code>iotdb-protocol</code> module.</p></li></ol><h2 id="using-the-node-js-native-interface" tabindex="-1"><a class="header-anchor" href="#using-the-node-js-native-interface"><span>Using the Node.js native interface</span></a></h2><p>Simply copy the files in <code>iotdb/iotdb-protocol/thrift/target/generated-sources-nodejs/</code> and <code>iotdb/iotdb-protocol/thrift-commons/target/generated-sources-nodejs/</code> into your project.</p><h2 id="rpc-interface" tabindex="-1"><a class="header-anchor" href="#rpc-interface"><span>rpc interface</span></a></h2><div class="language-cpp line-numbers-mode" data-highlighter="shiki" data-ext="cpp" style="background-color:#282c34;color:#abb2bf;"><pre class="shiki one-dark-pro vp-code"><code class="language-cpp"><span class="line"><span style="color:#7F848E;font-style:italic;">// open a session</span></span> |
| <span class="line"><span style="color:#E5C07B;">TSOpenSessionResp</span><span style="color:#61AFEF;"> openSession</span><span style="color:#ABB2BF;">(</span><span style="color:#D19A66;">1</span><span style="color:#ABB2BF;">:</span><span style="color:#E5C07B;">TSOpenSessionReq</span><span style="color:#E06C75;font-style:italic;"> req</span><span style="color:#ABB2BF;">);</span></span> |
| <span class="line"></span> |
| <span class="line"><span style="color:#7F848E;font-style:italic;">// close a session</span></span> |
| <span class="line"><span style="color:#E5C07B;">TSStatus</span><span style="color:#61AFEF;"> closeSession</span><span style="color:#ABB2BF;">(</span><span style="color:#D19A66;">1</span><span style="color:#ABB2BF;">:</span><span style="color:#E5C07B;">TSCloseSessionReq</span><span style="color:#E06C75;font-style:italic;"> req</span><span style="color:#ABB2BF;">);</span></span> |
| <span class="line"></span> |
| <span class="line"><span style="color:#7F848E;font-style:italic;">// run an SQL statement in batch</span></span> |
| <span class="line"><span style="color:#E5C07B;">TSExecuteStatementResp</span><span style="color:#61AFEF;"> executeStatement</span><span style="color:#ABB2BF;">(</span><span style="color:#D19A66;">1</span><span style="color:#ABB2BF;">:</span><span style="color:#E5C07B;">TSExecuteStatementReq</span><span style="color:#E06C75;font-style:italic;"> req</span><span style="color:#ABB2BF;">);</span></span> |
| <span class="line"></span> |
| <span class="line"><span style="color:#7F848E;font-style:italic;">// execute SQL statement in batch</span></span> |
| <span class="line"><span style="color:#E5C07B;">TSStatus</span><span style="color:#61AFEF;"> executeBatchStatement</span><span style="color:#ABB2BF;">(</span><span style="color:#D19A66;">1</span><span style="color:#ABB2BF;">:</span><span style="color:#E5C07B;">TSExecuteBatchStatementReq</span><span style="color:#E06C75;font-style:italic;"> req</span><span style="color:#ABB2BF;">);</span></span> |
| <span class="line"></span> |
| <span class="line"><span style="color:#7F848E;font-style:italic;">// execute query SQL statement</span></span> |
| <span class="line"><span style="color:#E5C07B;">TSExecuteStatementResp</span><span style="color:#61AFEF;"> executeQueryStatement</span><span style="color:#ABB2BF;">(</span><span style="color:#D19A66;">1</span><span style="color:#ABB2BF;">:</span><span style="color:#E5C07B;">TSExecuteStatementReq</span><span style="color:#E06C75;font-style:italic;"> req</span><span style="color:#ABB2BF;">);</span></span> |
| <span class="line"></span> |
| <span class="line"><span style="color:#7F848E;font-style:italic;">// execute insert, delete and update SQL statement</span></span> |
| <span class="line"><span style="color:#E5C07B;">TSExecuteStatementResp</span><span style="color:#61AFEF;"> executeUpdateStatement</span><span style="color:#ABB2BF;">(</span><span style="color:#D19A66;">1</span><span style="color:#ABB2BF;">:</span><span style="color:#E5C07B;">TSExecuteStatementReq</span><span style="color:#E06C75;font-style:italic;"> req</span><span style="color:#ABB2BF;">);</span></span> |
| <span class="line"></span> |
| <span class="line"><span style="color:#7F848E;font-style:italic;">// fetch next query result</span></span> |
| <span class="line"><span style="color:#E5C07B;">TSFetchResultsResp</span><span style="color:#61AFEF;"> fetchResults</span><span style="color:#ABB2BF;">(</span><span style="color:#D19A66;">1</span><span style="color:#ABB2BF;">:</span><span style="color:#E5C07B;">TSFetchResultsReq</span><span style="color:#E06C75;font-style:italic;"> req</span><span style="color:#ABB2BF;">)</span></span> |
| <span class="line"></span> |
| <span class="line"><span style="color:#7F848E;font-style:italic;">// fetch meta data</span></span> |
| <span class="line"><span style="color:#E5C07B;">TSFetchMetadataResp</span><span style="color:#61AFEF;"> fetchMetadata</span><span style="color:#ABB2BF;">(</span><span style="color:#D19A66;">1</span><span style="color:#ABB2BF;">:</span><span style="color:#E5C07B;">TSFetchMetadataReq</span><span style="color:#E06C75;font-style:italic;"> req</span><span style="color:#ABB2BF;">)</span></span> |
| <span class="line"></span> |
| <span class="line"><span style="color:#7F848E;font-style:italic;">// cancel a query</span></span> |
| <span class="line"><span style="color:#E5C07B;">TSStatus</span><span style="color:#61AFEF;"> cancelOperation</span><span style="color:#ABB2BF;">(</span><span style="color:#D19A66;">1</span><span style="color:#ABB2BF;">:</span><span style="color:#E5C07B;">TSCancelOperationReq</span><span style="color:#E06C75;font-style:italic;"> req</span><span style="color:#ABB2BF;">);</span></span> |
| <span class="line"></span> |
| <span class="line"><span style="color:#7F848E;font-style:italic;">// close a query dataset</span></span> |
| <span class="line"><span style="color:#E5C07B;">TSStatus</span><span style="color:#61AFEF;"> closeOperation</span><span style="color:#ABB2BF;">(</span><span style="color:#D19A66;">1</span><span style="color:#ABB2BF;">:</span><span style="color:#E5C07B;">TSCloseOperationReq</span><span style="color:#E06C75;font-style:italic;"> req</span><span style="color:#ABB2BF;">);</span></span> |
| <span class="line"></span> |
| <span class="line"><span style="color:#7F848E;font-style:italic;">// get time zone</span></span> |
| <span class="line"><span style="color:#E5C07B;">TSGetTimeZoneResp</span><span style="color:#61AFEF;"> getTimeZone</span><span style="color:#ABB2BF;">(</span><span style="color:#D19A66;">1</span><span style="color:#ABB2BF;">:</span><span style="color:#E5C07B;">i64</span><span style="color:#E06C75;font-style:italic;"> sessionId</span><span style="color:#ABB2BF;">);</span></span> |
| <span class="line"></span> |
| <span class="line"><span style="color:#7F848E;font-style:italic;">// set time zone</span></span> |
| <span class="line"><span style="color:#E5C07B;">TSStatus</span><span style="color:#61AFEF;"> setTimeZone</span><span style="color:#ABB2BF;">(</span><span style="color:#D19A66;">1</span><span style="color:#ABB2BF;">:</span><span style="color:#E5C07B;">TSSetTimeZoneReq</span><span style="color:#E06C75;font-style:italic;"> req</span><span style="color:#ABB2BF;">);</span></span> |
| <span class="line"></span> |
| <span class="line"><span style="color:#7F848E;font-style:italic;">// get server's properties</span></span> |
| <span class="line"><span style="color:#E5C07B;">ServerProperties</span><span style="color:#61AFEF;"> getProperties</span><span style="color:#ABB2BF;">();</span></span> |
| <span class="line"></span> |
| <span class="line"><span style="color:#7F848E;font-style:italic;">// CREATE DATABASE</span></span> |
| <span class="line"><span style="color:#E5C07B;">TSStatus</span><span style="color:#61AFEF;"> setStorageGroup</span><span style="color:#ABB2BF;">(</span><span style="color:#D19A66;">1</span><span style="color:#ABB2BF;">:</span><span style="color:#E5C07B;">i64</span><span style="color:#E06C75;font-style:italic;"> sessionId</span><span style="color:#ABB2BF;">, </span><span style="color:#D19A66;">2</span><span style="color:#ABB2BF;">:</span><span style="color:#E5C07B;">string</span><span style="color:#E06C75;font-style:italic;"> storageGroup</span><span style="color:#ABB2BF;">);</span></span> |
| <span class="line"></span> |
| <span class="line"><span style="color:#7F848E;font-style:italic;">// create timeseries</span></span> |
| <span class="line"><span style="color:#E5C07B;">TSStatus</span><span style="color:#61AFEF;"> createTimeseries</span><span style="color:#ABB2BF;">(</span><span style="color:#D19A66;">1</span><span style="color:#ABB2BF;">:</span><span style="color:#E5C07B;">TSCreateTimeseriesReq</span><span style="color:#E06C75;font-style:italic;"> req</span><span style="color:#ABB2BF;">);</span></span> |
| <span class="line"></span> |
| <span class="line"><span style="color:#7F848E;font-style:italic;">// create multi timeseries</span></span> |
| <span class="line"><span style="color:#E5C07B;">TSStatus</span><span style="color:#61AFEF;"> createMultiTimeseries</span><span style="color:#ABB2BF;">(</span><span style="color:#D19A66;">1</span><span style="color:#ABB2BF;">:</span><span style="color:#E5C07B;">TSCreateMultiTimeseriesReq</span><span style="color:#E06C75;font-style:italic;"> req</span><span style="color:#ABB2BF;">);</span></span> |
| <span class="line"></span> |
| <span class="line"><span style="color:#7F848E;font-style:italic;">// delete timeseries</span></span> |
| <span class="line"><span style="color:#E5C07B;">TSStatus</span><span style="color:#61AFEF;"> deleteTimeseries</span><span style="color:#ABB2BF;">(</span><span style="color:#D19A66;">1</span><span style="color:#ABB2BF;">:</span><span style="color:#E5C07B;">i64</span><span style="color:#E06C75;font-style:italic;"> sessionId</span><span style="color:#ABB2BF;">, </span><span style="color:#D19A66;">2</span><span style="color:#ABB2BF;">:</span><span style="color:#E5C07B;">list</span><span style="color:#ABB2BF;"><</span><span style="color:#E5C07B;">string</span><span style="color:#ABB2BF;">> </span><span style="color:#E06C75;font-style:italic;">path</span><span style="color:#ABB2BF;">)</span></span> |
| <span class="line"></span> |
| <span class="line"><span style="color:#7F848E;font-style:italic;">// delete sttorage groups</span></span> |
| <span class="line"><span style="color:#E5C07B;">TSStatus</span><span style="color:#61AFEF;"> deleteStorageGroups</span><span style="color:#ABB2BF;">(</span><span style="color:#D19A66;">1</span><span style="color:#ABB2BF;">:</span><span style="color:#E5C07B;">i64</span><span style="color:#E06C75;font-style:italic;"> sessionId</span><span style="color:#ABB2BF;">, </span><span style="color:#D19A66;">2</span><span style="color:#ABB2BF;">:</span><span style="color:#E5C07B;">list</span><span style="color:#ABB2BF;"><</span><span style="color:#E5C07B;">string</span><span style="color:#ABB2BF;">> </span><span style="color:#E06C75;font-style:italic;">storageGroup</span><span style="color:#ABB2BF;">);</span></span> |
| <span class="line"></span> |
| <span class="line"><span style="color:#7F848E;font-style:italic;">// insert record</span></span> |
| <span class="line"><span style="color:#E5C07B;">TSStatus</span><span style="color:#61AFEF;"> insertRecord</span><span style="color:#ABB2BF;">(</span><span style="color:#D19A66;">1</span><span style="color:#ABB2BF;">:</span><span style="color:#E5C07B;">TSInsertRecordReq</span><span style="color:#E06C75;font-style:italic;"> req</span><span style="color:#ABB2BF;">);</span></span> |
| <span class="line"></span> |
| <span class="line"><span style="color:#7F848E;font-style:italic;">// insert record in string format</span></span> |
| <span class="line"><span style="color:#E5C07B;">TSStatus</span><span style="color:#61AFEF;"> insertStringRecord</span><span style="color:#ABB2BF;">(</span><span style="color:#D19A66;">1</span><span style="color:#ABB2BF;">:</span><span style="color:#E5C07B;">TSInsertStringRecordReq</span><span style="color:#E06C75;font-style:italic;"> req</span><span style="color:#ABB2BF;">);</span></span> |
| <span class="line"></span> |
| <span class="line"><span style="color:#7F848E;font-style:italic;">// insert tablet</span></span> |
| <span class="line"><span style="color:#E5C07B;">TSStatus</span><span style="color:#61AFEF;"> insertTablet</span><span style="color:#ABB2BF;">(</span><span style="color:#D19A66;">1</span><span style="color:#ABB2BF;">:</span><span style="color:#E5C07B;">TSInsertTabletReq</span><span style="color:#E06C75;font-style:italic;"> req</span><span style="color:#ABB2BF;">);</span></span> |
| <span class="line"></span> |
| <span class="line"><span style="color:#7F848E;font-style:italic;">// insert tablets in batch</span></span> |
| <span class="line"><span style="color:#E5C07B;">TSStatus</span><span style="color:#61AFEF;"> insertTablets</span><span style="color:#ABB2BF;">(</span><span style="color:#D19A66;">1</span><span style="color:#ABB2BF;">:</span><span style="color:#E5C07B;">TSInsertTabletsReq</span><span style="color:#E06C75;font-style:italic;"> req</span><span style="color:#ABB2BF;">);</span></span> |
| <span class="line"></span> |
| <span class="line"><span style="color:#7F848E;font-style:italic;">// insert records in batch</span></span> |
| <span class="line"><span style="color:#E5C07B;">TSStatus</span><span style="color:#61AFEF;"> insertRecords</span><span style="color:#ABB2BF;">(</span><span style="color:#D19A66;">1</span><span style="color:#ABB2BF;">:</span><span style="color:#E5C07B;">TSInsertRecordsReq</span><span style="color:#E06C75;font-style:italic;"> req</span><span style="color:#ABB2BF;">);</span></span> |
| <span class="line"></span> |
| <span class="line"><span style="color:#7F848E;font-style:italic;">// insert records of one device</span></span> |
| <span class="line"><span style="color:#E5C07B;">TSStatus</span><span style="color:#61AFEF;"> insertRecordsOfOneDevice</span><span style="color:#ABB2BF;">(</span><span style="color:#D19A66;">1</span><span style="color:#ABB2BF;">:</span><span style="color:#E5C07B;">TSInsertRecordsOfOneDeviceReq</span><span style="color:#E06C75;font-style:italic;"> req</span><span style="color:#ABB2BF;">);</span></span> |
| <span class="line"></span> |
| <span class="line"><span style="color:#7F848E;font-style:italic;">// insert records in batch as string format</span></span> |
| <span class="line"><span style="color:#E5C07B;">TSStatus</span><span style="color:#61AFEF;"> insertStringRecords</span><span style="color:#ABB2BF;">(</span><span style="color:#D19A66;">1</span><span style="color:#ABB2BF;">:</span><span style="color:#E5C07B;">TSInsertStringRecordsReq</span><span style="color:#E06C75;font-style:italic;"> req</span><span style="color:#ABB2BF;">);</span></span> |
| <span class="line"></span> |
| <span class="line"><span style="color:#7F848E;font-style:italic;">// test the latency of innsert tablet,caution:no data will be inserted, only for test latency</span></span> |
| <span class="line"><span style="color:#E5C07B;">TSStatus</span><span style="color:#61AFEF;"> testInsertTablet</span><span style="color:#ABB2BF;">(</span><span style="color:#D19A66;">1</span><span style="color:#ABB2BF;">:</span><span style="color:#E5C07B;">TSInsertTabletReq</span><span style="color:#E06C75;font-style:italic;"> req</span><span style="color:#ABB2BF;">);</span></span> |
| <span class="line"></span> |
| <span class="line"><span style="color:#7F848E;font-style:italic;">// test the latency of innsert tablets,caution:no data will be inserted, only for test latency</span></span> |
| <span class="line"><span style="color:#E5C07B;">TSStatus</span><span style="color:#61AFEF;"> testInsertTablets</span><span style="color:#ABB2BF;">(</span><span style="color:#D19A66;">1</span><span style="color:#ABB2BF;">:</span><span style="color:#E5C07B;">TSInsertTabletsReq</span><span style="color:#E06C75;font-style:italic;"> req</span><span style="color:#ABB2BF;">);</span></span> |
| <span class="line"></span> |
| <span class="line"><span style="color:#7F848E;font-style:italic;">// test the latency of innsert record,caution:no data will be inserted, only for test latency</span></span> |
| <span class="line"><span style="color:#E5C07B;">TSStatus</span><span style="color:#61AFEF;"> testInsertRecord</span><span style="color:#ABB2BF;">(</span><span style="color:#D19A66;">1</span><span style="color:#ABB2BF;">:</span><span style="color:#E5C07B;">TSInsertRecordReq</span><span style="color:#E06C75;font-style:italic;"> req</span><span style="color:#ABB2BF;">);</span></span> |
| <span class="line"></span> |
| <span class="line"><span style="color:#7F848E;font-style:italic;">// test the latency of innsert record in string format,caution:no data will be inserted, only for test latency</span></span> |
| <span class="line"><span style="color:#E5C07B;">TSStatus</span><span style="color:#61AFEF;"> testInsertStringRecord</span><span style="color:#ABB2BF;">(</span><span style="color:#D19A66;">1</span><span style="color:#ABB2BF;">:</span><span style="color:#E5C07B;">TSInsertStringRecordReq</span><span style="color:#E06C75;font-style:italic;"> req</span><span style="color:#ABB2BF;">);</span></span> |
| <span class="line"></span> |
| <span class="line"><span style="color:#7F848E;font-style:italic;">// test the latency of innsert records,caution:no data will be inserted, only for test latency</span></span> |
| <span class="line"><span style="color:#E5C07B;">TSStatus</span><span style="color:#61AFEF;"> testInsertRecords</span><span style="color:#ABB2BF;">(</span><span style="color:#D19A66;">1</span><span style="color:#ABB2BF;">:</span><span style="color:#E5C07B;">TSInsertRecordsReq</span><span style="color:#E06C75;font-style:italic;"> req</span><span style="color:#ABB2BF;">);</span></span> |
| <span class="line"></span> |
| <span class="line"><span style="color:#7F848E;font-style:italic;">// test the latency of innsert records of one device,caution:no data will be inserted, only for test latency</span></span> |
| <span class="line"><span style="color:#E5C07B;">TSStatus</span><span style="color:#61AFEF;"> testInsertRecordsOfOneDevice</span><span style="color:#ABB2BF;">(</span><span style="color:#D19A66;">1</span><span style="color:#ABB2BF;">:</span><span style="color:#E5C07B;">TSInsertRecordsOfOneDeviceReq</span><span style="color:#E06C75;font-style:italic;"> req</span><span style="color:#ABB2BF;">);</span></span> |
| <span class="line"></span> |
| <span class="line"><span style="color:#7F848E;font-style:italic;">// test the latency of innsert records in string formate,caution:no data will be inserted, only for test latency</span></span> |
| <span class="line"><span style="color:#E5C07B;">TSStatus</span><span style="color:#61AFEF;"> testInsertStringRecords</span><span style="color:#ABB2BF;">(</span><span style="color:#D19A66;">1</span><span style="color:#ABB2BF;">:</span><span style="color:#E5C07B;">TSInsertStringRecordsReq</span><span style="color:#E06C75;font-style:italic;"> req</span><span style="color:#ABB2BF;">);</span></span> |
| <span class="line"></span> |
| <span class="line"><span style="color:#7F848E;font-style:italic;">// delete data</span></span> |
| <span class="line"><span style="color:#E5C07B;">TSStatus</span><span style="color:#61AFEF;"> deleteData</span><span style="color:#ABB2BF;">(</span><span style="color:#D19A66;">1</span><span style="color:#ABB2BF;">:</span><span style="color:#E5C07B;">TSDeleteDataReq</span><span style="color:#E06C75;font-style:italic;"> req</span><span style="color:#ABB2BF;">);</span></span> |
| <span class="line"></span> |
| <span class="line"><span style="color:#7F848E;font-style:italic;">// execute raw data query</span></span> |
| <span class="line"><span style="color:#E5C07B;">TSExecuteStatementResp</span><span style="color:#61AFEF;"> executeRawDataQuery</span><span style="color:#ABB2BF;">(</span><span style="color:#D19A66;">1</span><span style="color:#ABB2BF;">:</span><span style="color:#E5C07B;">TSRawDataQueryReq</span><span style="color:#E06C75;font-style:italic;"> req</span><span style="color:#ABB2BF;">);</span></span> |
| <span class="line"></span> |
| <span class="line"><span style="color:#7F848E;font-style:italic;">// request a statement id from server</span></span> |
| <span class="line"><span style="color:#E5C07B;">i64</span><span style="color:#61AFEF;"> requestStatementId</span><span style="color:#ABB2BF;">(</span><span style="color:#D19A66;">1</span><span style="color:#ABB2BF;">:</span><span style="color:#E5C07B;">i64</span><span style="color:#E06C75;font-style:italic;"> sessionId</span><span style="color:#ABB2BF;">);</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div>`,10)])])}const i=n(t,[["render",o]]),r=JSON.parse('{"path":"/UserGuide/V1.3.x/API/Programming-NodeJS-Native-API.html","title":"Node.js Native API","lang":"en-US","frontmatter":{"description":"Node.js Native API Apache IoTDB uses Thrift as a cross-language RPC-framework so access to IoTDB can be achieved through the interfaces provided by Thrift. This document will in...","head":[["script",{"type":"application/ld+json"},"{\\"@context\\":\\"https://schema.org\\",\\"@type\\":\\"Article\\",\\"headline\\":\\"Node.js Native API\\",\\"image\\":[\\"\\"],\\"dateModified\\":\\"2025-12-11T12:00:44.000Z\\",\\"author\\":[]}"],["meta",{"property":"og:url","content":"https://iotdb.apache.org/UserGuide/V1.3.x/API/Programming-NodeJS-Native-API.html"}],["meta",{"property":"og:site_name","content":"IoTDB Website"}],["meta",{"property":"og:title","content":"Node.js Native API"}],["meta",{"property":"og:description","content":"Node.js Native API Apache IoTDB uses Thrift as a cross-language RPC-framework so access to IoTDB can be achieved through the interfaces provided by Thrift. This document will in..."}],["meta",{"property":"og:type","content":"article"}],["meta",{"property":"og:locale","content":"en-US"}],["meta",{"property":"og:locale:alternate","content":"zh-CN"}],["meta",{"property":"og:updated_time","content":"2025-12-11T12:00:44.000Z"}],["meta",{"property":"article:modified_time","content":"2025-12-11T12:00:44.000Z"}],["link",{"rel":"alternate","hreflang":"zh-cn","href":"https://iotdb.apache.org/zh/UserGuide/V1.3.x/API/Programming-NodeJS-Native-API.html"}]]},"git":{"createdTime":1688958677000,"updatedTime":1765454444000,"contributors":[{"name":"CritasWang","username":"CritasWang","email":"critas@outlook.com","commits":4,"url":"https://github.com/CritasWang"},{"name":"W1y1r","username":"W1y1r","email":"150988475+W1y1r@users.noreply.github.com","commits":3,"url":"https://github.com/W1y1r"},{"name":"Mister-Hope","username":"Mister-Hope","email":"mister-hope@outlook.com","commits":1,"url":"https://github.com/Mister-Hope"},{"name":"leto-b","username":"leto-b","email":"bingqian.bai@timecho.com","commits":1,"url":"https://github.com/leto-b"}]},"readingTime":{"minutes":2.69,"words":808},"filePathRelative":"UserGuide/V1.3.x/API/Programming-NodeJS-Native-API.md","autoDesc":true}');export{i as comp,r as data}; |