代码拉取完成,页面将自动刷新
要求Nodejs版本10.21或以上。使用到了BigInt。
const {DBconnection} = require('dolphindb-api-nodejs');
var conn = new DBconnection();
await conn.connect("localhost", 8848);
函数说明:
connect(host, port, username, password)
建立连接之后,可以把脚本传输到服务端运行,并返回相应结果,如下所示:
let result;
result = await conn.run('typestr [1,2,3]');
// 返回 FAST INT VECTOR
result = await conn.run("dict(1 7 5,`AA`BB`CC)");
// 返回 Map(3) {5 => CC, 1 => AA, 7=> BB}
result = await conn.runFunc('add', [1,2,3], [4,5,6]);
// 返回 [5,7,9]
await conn.run('a=[1,2,3]');
result = await conn.runFunc('add{a,}', [1,2.6,7]);
// 返回 [2, 4.6, 10]
函数说明:
runFunc(funcName, ...args)
注意,在上传参数时,可能需要进行包装, 以下进行说明:
标量类型
YYYY-MM-DD
,对象格式{year: 1970, month: 1, day: 1}
和天数格式(距离1970年1月1日的天数)YYYY-MM
,对象格式{year: 1970, month: 1}
和月格式(距离公元0年初始的月数)HH:mm:ss.s
,对象格式{hour: 0, minute: 0, second: 0, nanoSecond: 0}
和毫秒格式(距离当天0点的毫秒数)HH:mm
,对象格式{hour: 0, minute: 0}
和分钟格式(距离当天0点的分钟数)HH:mm:ss
,对象格式{hour: 0, minute: 0, second:0}
和秒格式(距离当天0点的秒数)YYYY-MM-DD HH:mm:ss
,对象格式{year: 1970, month: 1, day: 1, hour: 0, minute: 0, second: 0}
和秒格式(距离1970年1月1日0点的秒数)YYYY-MM-DD HH:mm:ss.s
, 对象格式{date: {year: 1970, month: 1, day: 1}, time: {hour: 0, minute: 0, second: 0, nanoSecond: 0}}
和毫秒格式(距离1970年1月1日0点的毫秒数,需要使用BigInt类型数值)YYYY-MM-DD HH:mm:ss.s
,对象格式{hour: 0, minute: 0, second: 0, nanoSecond: 0}
和纳秒格式(距离当天0点的纳秒数,需使用BigInt类型数值)YYYY-MM-DD HH:mm:ss.s
,对象格式{date: {year: 1970, month: 1, day: 1}, time: {hour: 0, minute: 0, second: 0, nanoSecond: 0}}
和纳秒格式(距离1970年1月1日0点的纳秒数,需要使用BigInt类型数值)00000000-0000-0000-0000-000000000000
和对象格式{high: 0n, low: 0n}
192.168.1.0
和对象格式{high: 0n, low: 0n}
。对于Ipv6格式,可以直接以16进制字符格式传递(不要:
号)e1671797c52e15f763380b45e841ec32
和对象格式{high: 0n, low: 0n}
DT.Int(), DT.Int(null), DT.Null('int')
, 对于服务器端void
类型,则使用DT.Null(0)
或DT.Null('void')
表示。复合类型
'12:18'
{colnames:[], rownames: [], type: 'int', data: [[1,2],[3,4]]}
。除了data
为必须,其它均可不设置{tablename:'t', colnames: ['id','val'], types: ['int','string'], data: [[1,2,3],['aa','bb','mm']]}
。除了data
为必须,其它均可不设置const {DT} = require('dolphindb-api-nodejs')
await conn.upload("a", DT.TimeStamp("2012-06-13 13:30:10.008"));
result = await conn.run('a');
// 返回TimeStamp对象, 需使用toString()方法格式化输出, 结果为: 2012-6-13 13:30:10.8000000ns
函数说明:
upload(varnames, ...vars)
,
分隔。上传变量格式与上传函数参数时使用的格式相同
const {StreamClient} = require('dolphindb-api-nodejs');
const client = new StreamClient(8997); // 提供本地监听端口
var script = '' +
'share streamTable(100:0, `sym`date`price`qty, [SYMBOL, DATE, DOUBLE, INT]) as trades \n'+
'setStreamTableFilterColumn(trades, `qty) \n'+
'tmp = table(symbol(`A`B`C`D`E) as sym, 2012.01.01..2012.01.05 as date, [20.5, 45.2, 15.6, 58.4, 12.0] as price, [2200, 1500, 4800, 5900, 4600] as qty) \n'+
'trades.append!(tmp)'
await conn.run(script)
client.subscribe("localhost",8848, "trades", "trades_sub1", {handler: function(data) {console.log(data)}, offset:0,filter:Int([2200, 1500])})
函数说明: subscibe (host, port, tableName, actionName, options)
host:发布端节点的IP地址。
port:发布端节点的端口号。
tableName:发布表的名称。
actionName:订阅任务的名称。
options:可选参数,包括,
需要注意的是若客户端只接收到一行数据,则nodejs返回的是一维数组;若接收到多行数据时,返回的是二维数组。
await client.unsubscribe("127.0.0.1", 8848, "trades", "trades_subs1");
函数说明: unsubscibe (host, port, tableName, actionName)
参数意义同subscribe()函数。
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。