npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

@gtiot/sdk-nodejs

v0.2.2

Published

云化组态平台NodeJS开发基础库

Readme

Node SDK开发文档

前沿

使用前请先阅读《创建第三方应用文档》创建第三方应用。

概述

本文档主要介绍Air IOT JavaScript SDK的安装和使用。在使用本文档前,您需要先了解Air IOT的一些基本知识,并已经安装了Air IOT平台服务。 JavaScript SDK可以运行在Node.js环境中,开发者通过调用API简单便捷地创建驱动、任务和接口服务。

安装SDK

Node.js环境

支持的Node.js版本

  • Node 10.x 以及更高版本

安装步骤

  1. JavaScript包已经上传npm管理器,直接使用npm安装SDK的开发包:
npm install @gtiot/sdk-nodejs
  1. 然后在你的程序中使用:
const { App, Driver } = require('@gtiot/sdk-nodejs')
const cfg = {
  host: "localhost", // 网关IP地址
  port: 80, // 网关端口
  mqtt: { // 消息队列配置
    host: "localhost" // 消息队列IP地址
    port: 1883, // 消息队列端口
  },
  credentials: {
    ak: "ak",  // 您的AK
    sk: "sk"   // 您的SK
  },
  log: {
    level:"debug" // 日志等级
  },
  driver: {
    id: "test",  // 驱动唯一标识
    name: "test" // 驱动名称
  } 
}

class TestDriver extends Driver {
  init() {
    app.log.debug('init')
  }

  start(app, driverConfig, cb) {
    app.log.debug('启动')
    cb(null)
  }

  reload(app, driverConfig, cb) {
    app.log.debug('驱动重启')
    cb(null)
  }

  run(app, nodeId, command, cb) {
    app.log.debug('运行指令', nodeId, command)
    cb(null)
  }

  debug(app, debugConfig, cb) {
    app.log.debug('运行测试', debugConfig)
    cb(null)
  }

  stop(app, cb) {
    app.log.debug('驱动停止处理')
    this.cron.cancel()
    cb(null)
  }
}

// 实例化并开始运行
new App(cfg).start(new TestDriver())

日志

引入日志通用包,设置日志等级,包含debug、info、warn、error方法。

示例代码

// 导入包
const log = require('@gtiot/sdk-nodejs/log')('debug')

// 测试
describe('log', function () {
  it('debug', (done) => {
    log.debug(1)
    done()
  })
  it('info', (done) => {
    log.info(1)
    done()
  })
  it('warn', (done) => {
    log.warn(1)
    done()
  })
  it('error', (done) => {
    log.error(1)
    done()
  })
})

初始化

驱动开发快速入门

初始化配置

与服务端交互,包含网关地址、消息队列地址、认证信息、驱动信息、日志等配置信息。

示例代码

const { App, Driver } = require('@gtiot/sdk-nodejs/driver')

let config = {
  host: "localhost", // 网关IP地址
  port: 80, // 网关端口
  mqtt: { // 消息队列配置
    host: "localhost" // 消息队列IP地址
    port: 1883, // 消息队列端口
  },
  credentials: {
    ak: "ak",  // 您的AK
    sk: "sk"   // 您的SK
  },
  log: {
    level:"debug" // 日志等级
  },
  driver: {
    id: "test",  // 驱动唯一标识
    name: "test" // 驱动名称
  } 
}

驱动App类方法

驱动启动

| 方法 | start(driver)  | | | | --- | --- | --- | --- | | 参数说明 | 参数名 | 必选 | 说明 | | driver | 否 | 驱动的实例化对象 | | | 返回值 | 无 | | |

保存数据

| 方法 | writePoints({ modelId, uid, nodeId, fields, time }) | | | | --- | --- | --- | --- | | 参数说明 | 参数名 | 必选 | 说明 | | modelId | 是 | 模型id | | | nodeId | 是 | 设备id | | | uid | 是 | 设备编号 | | | time | 是 | 数据更新时间,时间戳毫秒数(1596440650000) | | | fields | 是 | 数组对象,[{tag:{},value:0}],tag为数据点对象,value为数据值 | | | 返回值 | 无 | | |

将日志发送到消息队列

| 方法 | logMsg(topic,msg)  | | | | --- | --- | --- | --- | | 参数说明 | 参数名 | 必选 | 说明 | | topic | 否 | 日志消息主题 | | | msg | 否 | string,日志数据 | | | 返回值 | 无 | | |

将debug日志发送到消息队列

| 方法 | logDebug(uid,msg)  | | | | --- | --- | --- | --- | | 参数说明 | 参数名 | 必选 | 说明 | | uid | 否 | 设备编号 | | | msg | 否 | string,日志数据 | | | 返回值 | 无 | | |

将info日志发送到消息队列

| 方法 | logInfo(uid,msg)  | | | | --- | --- | --- | --- | | 参数说明 | 参数名 | 必选 | 说明 | | uid | 否 | 设备编号 | | | msg | 否 | string,日志数据 | | | 返回值 | 无 | | |

将warn日志发送到消息队列

| 方法 | logWarn(uid,msg)  | | | | --- | --- | --- | --- | | 参数说明 | 参数名 | 必选 | 说明 | | uid | 否 | 设备编号 | | | msg | 否 | string,日志数据 | | | 返回值 | 无 | | |

将error日志发送到消息队列

| 方法 | logError(uid,msg)  | | | | --- | --- | --- | --- | | 参数说明 | 参数名 | 必选 | 说明 | | uid | 否 | 设备编号 | | | msg | 否 | string,日志数据 | | | 返回值 | 无 | | |

新建一个class

class继承Driver类包含init、start、schema、reload、run、debug、stop等函数,驱动的读、写数据都是通过此类完成的。

示例代码

/**
 * @name: TestDriver
 * @msg: 测试驱动
 * @param {type} 
 * @return: 
 */
class TestDriver extends Driver {
  /**
   * @name: init
   * @msg: 初始化驱动,如初始化连接
   * @param {type} 
   * @return: 
   */
  init() {
    app.log.debug('init')
  }

  /**
   * @name: schema
   * @msg: 查询返回驱动配置schema js内容
   * @return: string 驱动配置schema
   */
  schema(){}
  
  /**
   * @name: start
   * @msg: 驱动启动
   * @param driverConfig array 包含模型及设备数据
   * @return: 
   */
  start(app, driverConfig, cb) {
    app.log.debug('启动')
    cb(null)
  }

  /**
   * @name: reload
   * @msg: 驱动重启
   * @param driverConfig array 包含模型及设备数据
   * @return: 
   */
  reload(app, driverConfig, cb) {
    app.log.debug('驱动重启')
    cb(null)
  }

  /**
   * @name: run
   * @msg: 运行指令,向设备写入数据
   * @param nodeId string 设备id
   * @param command object 指令内容
   * @return: 
   */
  run(app, nodeId, command, cb) {
    app.log.debug('运行指令', nodeId, command)
    cb(null)
  }

  /**
   * @name: debug
   * @msg: 调试驱动
   * @param debugConfig object 驱动配置,包含连接信息
   * @return: 
   */
  debug(app, debugConfig, cb) {
    app.log.debug('运行测试', debugConfig)
    cb(null)
  }

  /**
   * @name: stop
   * @msg: 驱动停止处理
   * @param {type} 
   * @return: 
   */
  stop(app, cb) {
    app.log.debug('驱动停止处理')
    this.cron.cancel()
    cb(null)
  }
}

驱动启动

 实例化并开始运行驱动

示例代码

new App(config).start(new TestDriver())

任务类(计算类)服务开发快速入门

开发计算类或者任务类等服务。

任务App类属性

调度程序

| 属性 | schedule | | | | --- | --- | --- | --- | | 参数说明 | 属性名 | 必选 | 说明 | | schedule | 是 | 计划任务 | | | 返回值 | 无 | | |

任务App类方法

驱动启动

| 方法 | start(task)  | | | | --- | --- | --- | --- | | 参数说明 | 参数名 | 必选 | 说明 | | task | 否 | 任务的实例化对象 | | | 返回值 | 无 | | |

导入程序包

const { App, Task } = require('@gtiot/sdk-nodejs/task')

新建一个class

class继承Task类包含init、start、stop等函数任务的启动、停止通过此类完成的。

示例代码

// 继承Task类
class TestTask extends Task {

  /**
   * @name: init
   * @msg: 初始化
   * @param {type} 
   * @return: 
   */
  init() {
    log.info('初始化')
  }

  /**
    * @name: start
    * @msg: 启动处理
    * @param {type} 
    * @return {type} 
    */
  start(app) {
    log.info('启动')
    app.schedule.scheduleJob('* * * * * *', () => {
      log.debug(`测试`)
    })
  }

  /**
   * @name: stop
   * @msg: 停止处理
   * @param {type} 
   * @return {type} 
   */
  stop(app) {
    log.info('停止')
  }
}

任务启动

 实例化并开始运行任务

示例代码

// 实例化并开始运行
new App().start(new TestTask())

接口服务开发快速入门

开发接口类等服务。 如在平台内使用,接口需增加统一URL PATH路径,如http://localhost:8080/路径/node。

接口App类属性

Web服务

| 属性 | http | | | | --- | --- | --- | --- | | 参数说明 | 属性名 | 必选 | 说明 | | http | 是 | web服务 | | | 返回值 | 无 | | |

任务App类方法

驱动启动

| 方法 | start(service, port)  | | | | --- | --- | --- | --- | | 参数说明 | 参数名 | 必选 | 说明 | | service | 否 | 接口的实例化对象 | | | port | 否 | 接口服务端口 | | | 返回值 | 无 | | |

导入程序包

const { App, Service } = require('@gtiot/sdk-nodejs/service')

新建一个class

class继承Service类包含init、start、stop等函数接口的启动、停止通过此类完成的。

示例代码

// 继承Service类
class TestService extends Service {

  /**
   * @name: init
   * @msg: 初始化
   * @param {type} 
   * @return: 
   */
  init() {
    log.info('初始化')
  }

  /**
    * @name: start
    * @msg: 启动处理
    * @param {type} 
    * @return {type} 
    */
  start(app) {
    log.info('启动')
    app.http.get('/', (req, res) => res.send('Hello World!'))
  }

  /**
   * @name: stop
   * @msg: 停止处理
   * @param {type} 
   * @return {type} 
   */
  stop(app) {
    log.info('停止')
  }
}

服务启动

 实例化并开始运行接口

示例代码

// 实例化并开始运行
new App().start(new TestService())

通用连接

MQTT连接

客户端使用快速入门

实例化客户端,传入地址、端口、认证信息等。

示例代码

// 引入包
const Mqtt = require('@gtiot/sdk-nodejs/conn/mqtt')
// 实例化
let m = new Mqtt({ host, port, username, password })

客户端方法

关闭连接

| 方法 | close(cb)  | | | | --- | --- | --- | --- | | 参数说明 | 参数名 | 必选 | 说明 | | cb | 否 | 成功回调function callback(){} | | | 返回值 | 无 | | |

发送数据点数据到平台

| 方法 | sendDefault(data) | | | | --- | --- | --- | --- | | 参数说明 | 参数名 | 必选 | 说明 | | data | 否 | { uid, nodeId, modelId, fields:{"数据点":"值"} } | | | 返回值 | promise | | |

发送数据

| 方法 | send(topic, data) | | | | --- | --- | --- | --- | | 参数说明 | 参数名 | 必选 | 说明 | | topic | 否 | string 主题 | | | data | 否 | string | Buffer 数据 | | | 返回值 | promise | | |

订阅并接收消息

| 方法 | receive({ topic, qos = 0 }, cb) | | | | --- | --- | --- | --- | | 参数说明 | 参数名 | 必选 | 说明 | | topic | 是 | string 主题 | | | qos | 是 | 服务质量等级 | | | cb | 否 | 成功回调function callback(topic, payload){} | | | 返回值 | | | |

订阅主题

| 方法 | subscribe({ topic, qos = 0 }, cb)  | | | | --- | --- | --- | --- | | 参数说明 | 参数名 | 必选 | 说明 | | topic | 是 | string 主题 | | | qos | 是 | 服务质量等级 | | | cb | 否 | 成功回调function callback(err){} | | | 返回值 | | | |

接收消息数据

| 方法 | message(cb) | | | | --- | --- | --- | --- | | 参数说明 | 参数名 | 必选 | 说明 | | cb | 否 | 成功回调function callback(topic, payload){} | | | 返回值 | | | |

AMQP连接

客户端使用快速入门

实例化客户端,传入地址、端口、认证信息等。

示例代码

// 引入包
const RabbitMQ = require('@gtiot/sdk-nodejs/conn/rabbit')
// 实例化
let m = new RabbitMQ({ host, port, username, password })

客户端方法

关闭连接

| 方法 | close(cb)  | | | | --- | --- | --- | --- | | 参数说明 | 参数名 | 必选 | 说明 | | cb | 否 | 成功回调function callback(err){} | | | 返回值 | 无 | | |

发送数据点数据到平台

| 方法 | sendDefault(data) | | | | --- | --- | --- | --- | | 参数说明 | 参数名 | 必选 | 说明 | | data | 否 | { uid, nodeId, modelId, fields:{"数据点":"值"} } | | | 返回值 | promise | | |

发送数据

| 方法 | send(exchange, routingKey, data) | | | | --- | --- | --- | --- | | 参数说明 | 参数名 | 必选 | 说明 | | exchange | 否 | 消息交换机 | | | routingKey | 否 | string 路由 | | | data | 否 | Buffer 数据 | | | 返回值 | promise | | |

接收消息数据

| 方法 | receive(queue, cb) | | | | --- | --- | --- | --- | | 参数说明 | 参数名 | 必选 | 说明 | | queue | 否 | string 队列 | | | cb | 否 | 成功回调function callback(err, msg){} | | | 返回值 | | | |

TCP客户端连接

客户端使用快速入门

实例化客户端,传入地址、端口等。

示例代码

// 引入包
const Socket = require('@gtiot/sdk-nodejs/conn/tcp')
// 实例化
let socket = new Socket( host, port )

客户端方法

关闭连接

| 方法 | close()  | | | | --- | --- | --- | --- | | 参数说明 | 参数名 | 必选 | 说明 | | 返回值 | 无 | | |

向服务端写入数据

| 方法 | write(data[, encoding], cb) | | | | --- | --- | --- | --- | | 参数说明 | 参数名 | 必选 | 说明 | | data | 否 | string | Buffer | Uint8Array 数据 | | | encoding | 否 | string 编码,默认utf-8 | | | cb | 否 | 成功回调function callback(err){} | | | 返回值 | | | |

接收数据

| 方法 | message(cb) | | | | --- | --- | --- | --- | | 参数说明 | 参数名 | 必选 | 说明 | | cb | 否 | 成功回调function callback(data){} | | | 返回值 | | | |

UDP客户端连接

客户端使用快速入门

实例化客户端,传入地址、端口等。

示例代码

// 引入包
const UDP = require('@gtiot/sdk-nodejs/conn/udp')
// 实例化
let udp = new UDP( host, port )

客户端方法

向服务端写入数据

| 方法 | write(data, cb) | | | | --- | --- | --- | --- | | 参数说明 | 参数名 | 必选 | 说明 | | data | 否 | string 数据 | | | cb | 否 | 成功回调function callback(err,b){} | | | 返回值 | | | |

接收数据

| 方法 | message(cb) | | | | --- | --- | --- | --- | | 参数说明 | 参数名 | 必选 | 说明 | | cb | 否 | 成功回调function callback(msg, rinfo){} | | | 返回值 | | | |

WebSocket客户端连接

客户端使用快速入门

实例化客户端,传入WebSocket url地址。

示例代码

// 引入包
const WebSocket = require('@gtiot/sdk-nodejs/conn/ws')
// 实例化
let ws = new WebSocket(url)

客户端方法

关闭连接

| 方法 | close()  | | | | --- | --- | --- | --- | | 参数说明 | 参数名 | 必选 | 说明 | | 返回值 | 无 | | |

向服务端写入数据

| 方法 | sendObject(data, cb) | | | | --- | --- | --- | --- | | 参数说明 | 参数名 | 必选 | 说明 | | data | 否 | object 数据 | | | cb | 否 | 成功回调function callback(err){} | | | 返回值 | | | |

向服务端写入字符串数据

| 方法 | send(data, cb) | | | | --- | --- | --- | --- | | 参数说明 | 参数名 | 必选 | 说明 | | data | 否 | string 数据 | | | cb | 否 | 成功回调function callback(err){} | | | 返回值 | | | |

接收数据

| 方法 | message(cb) | | | | --- | --- | --- | --- | | 参数说明 | 参数名 | 必选 | 说明 | | cb | 否 | 成功回调function callback(data){} | | | 返回值 | | | |

接口客户端

客户端使用快速入门

实例化客户端,传入网关协议(http、https)、地址、端口、认证信息等。

| 参数 | 参数说明 | 类型 | 说明 | | --- | --- | --- | --- | | protocol | 接口协议 | string | 非必填,默认http | | host | 网关IP地址 | string | | | port | 网关端口 | number | | | credentials | 认证信息 | object | | | ak | 应用app id | string | 创建应用获取 | | sk | 应用秘钥 | string | 创建应用获取 |

示例代码

// 引入包
const Api = require('@gtiot/sdk-nodejs/api')
// 实例化
let api = new Api({ protocol, host, port, credentials: { ak, sk } })

接口详情

查询token

| 方法 | authToken()  | | | | --- | --- | --- | --- | | 参数说明 | 参数名 | 必选 | 说明 | | 无 | | | | | 返回值 | {"expires": 0,"token": ""},expires:超时时间,单位ns | | |

GET方法

| 方法 | get(url) | | | | --- | --- | --- | --- | | 参数说明 | 参数名 | 必选 | 说明 | | url | 否 | 请求地址,如http://localhost:80/core/model/{id} | | | 返回值 | 返回get请求结果 | | |

POST方法

| 方法 | post(url, data) | | | | --- | --- | --- | --- | | 参数说明 | 参数名 | 必选 | 说明 | | url | 否 | 请求地址,如http://localhost:80/core/model | | | data | 否 | 请求数据 | | | 返回值 | 返回post请求结果 | | |

DELETE方法

| 方法 | delete(url) | | | | --- | --- | --- | --- | | 参数说明 | 参数名 | 必选 | 说明 | | url | 否 | 请求地址,如http://localhost:80/core/model/{id} | | | 返回值 | 返回delete请求结果 | | |

PUT方法

| 方法 | put(url, data) | | | | --- | --- | --- | --- | | 参数说明 | 参数名 | 必选 | 说明 | | url | 否 | 请求地址,如http://localhost:80/core/model/{id} | | | data | 否 | 请求数据 | | | 返回值 | 返回put请求结果 | | |

PATCH方法

| 方法 | patch(url, data) | | | | --- | --- | --- | --- | | 参数说明 | 参数名 | 必选 | 说明 | | url | 否 | 请求地址,如http://localhost:80/core/model/{id} | | | data | 否 | 请求数据 | | | 返回值 | 返回patch请求结果 | | |

查询最新采集数据

| 方法 | getDataLatest(query)  | | | | --- | --- | --- | --- | | 参数说明 | 参数名 | 必选 | 说明 | | query | 否 | 设备编号及数据点唯一标识数组,如 [{"uid":"设备编号","tagId":"数据点"}],参数具体信息请参考《平台接口文档》 | | | 返回值 | 返回最新数据点信息及数据数组,[{"tagId":"数据点","time":时间戳,"uid":"设备编号","value":最新数据值}] | | |

查询时序数据,如实时数据及历史数据

| 方法 | getDataQuery(query)  | | | | --- | --- | --- | --- | | 参数说明 | 参数名 | 必选 | 说明 | | query | 否 | 查询条件数组,[{"fields":["查询字段"],"uid":"设备编号","where":["查询条件"],"group":["分组"],"deartment":["部门"],"fill":"时序查询填充值","order":"排序","limit":5,"offset":0}],数组中包含json对象,json对象属性非全部必要,可根据需求选取,fields为查询字段,可包含聚合函数(COUNT(计数)、MEAN(平均值)、SUM(求和)等,也可使用其他查询函数)。例: [{"fields":["MEAN("tagid3") as XXX","MEAN("tagid4") as YYY"],"uid":"adg","where":["time >= '2019-04-15 00:00:00'","time <= '2019-04-16 00:00:00'"],"group":["time(5m)"],"deartment":["5cceba2cc7157e23ae172c28"],"fill":"0","order":"time asc","limit":5,"offset":0}],参数具体信息请参考《平台接口文档》 | | | 返回值 | 返回数据点数据,{"results":[{"series":[{"columns":["数据点"],"name":"模型id","values":[[{值}]]}]}]} | image.png | |

根据过滤器查询模型数据

| 方法 | getModel(query)  | | | | --- | --- | --- | --- | | 参数说明 | 参数名 | 必选 | 说明 | | query | 否 | json对象属性非全部必要,可根据需求选取,详情请看接口文档,例{"limit":30,"skip":20,"sort":{"age":-1,"posts":1},"filter":{"name":"Tom","fullname":{"$regex":"la"},,"project":{"name":1,"model":1,"warning":{"hasWarning":1}},"withCount":true},参数具体信息请参考《平台接口文档》 | | | 返回值 | 返回模型数组 | [{"id":"id","name":"模型名称"...}] | |

根据id查询模型数据

| 方法 | getModelById(id) | | | | --- | --- | --- | --- | | 参数说明 | 参数名 | 必选 | 说明 | | id | 否 | 模型id | | | 返回值 | 返回模型数据 | {"id":"id","name":"模型名称"...} | |

保存模型数据

| 方法 | saveModel(data) | | | | --- | --- | --- | --- | | 参数说明 | 参数名 | 必选 | 说明 | | data | 否 | 模型对象数据,例子{"name":"模型名称"...} | | | 返回值 | 返回保存结果 | {"InsertedID":"模型唯一标识"} | |

根据id删除模型数据

| 方法 | deleteModelById(id) | | | | --- | --- | --- | --- | | 参数说明 | 参数名 | 必选 | 说明 | | id | 否 | 模型id | | | 返回值 | 返回删除结果 | {"DeletedCount":1} | |

根据id及数据替换原有模型数据

| 方法 | replaceModelById(id, data)  | | | | --- | --- | --- | --- | | 参数说明 | 参数名 | 必选 | 说明 | | id | 否 | 模型id | | | data | 否 | 模型对象数据,例子{"name":"模型名称"...} | | | 返回值 | 返回数据更新结果 | {"MatchedCount":1,"ModifiedCount":1,"UpsertedCount":0,"UpsertedID":null} | |

根据id更新模型数据

| 方法 | updateModelById(id, data)  | | | | --- | --- | --- | --- | | 参数说明 | 参数名 | 必选 | 说明 | | id | 否 | 模型id | | | data | 否 | 模型对象数据,例子{"name":"模型名称"...} | | | 返回值 | 返回数据更新结果 | {"MatchedCount":1,"ModifiedCount":1,"UpsertedCount":0,"UpsertedID":null} | |

根据过滤器查询资产数据

| 方法 | getNode(query)  | | | | --- | --- | --- | --- | | 参数说明 | 参数名 | 必选 | 说明 | | query | 否 | json对象属性非全部必要,可根据需求选取,详情请看接口文档,例{"limit":30,"skip":20,"sort":{"age":-1,"posts":1},"filter":{"name":"Tom","fullname":{"$regex":"la"},"withCount":true},参数具体信息请参考《平台接口文档》 | | | 返回值 | 返回资产数组 | [{"id":"id","name":"资产名称"...}] | |

根据id查询资产数据

| 方法 | getNodeById(id) | | | | --- | --- | --- | --- | | 参数说明 | 参数名 | 必选 | 说明 | | id | 否 | 资产id | | | 返回值 | 返回模型数据 | {"id":"id","name":"模型名称"...} | |

保存资产数据

| 方法 | saveNode(data) | | | | --- | --- | --- | --- | | 参数说明 | 参数名 | 必选 | 说明 | | data | 否 | 资产对象数据,例 {"name":"模型名称"...} | | | 返回值 | 返回保存结果 | {"InsertedID":"资产唯一标识"} | |

根据id删除资产数据

| 方法 | deleteNodeById(id) | | | | --- | --- | --- | --- | | 参数说明 | 参数名 | 必选 | 说明 | | id | 否 | 资产id | | | 返回值 | 返回删除结果 | {"DeletedCount":1} | |

根据id及数据替换原有资产数据

| 方法 | replaceNodeById(id, data)  | | | | --- | --- | --- | --- | | 参数说明 | 参数名 | 必选 | 说明 | | id | 否 | 资产id | | | data | 否 | 资产对象数据,例子{"name":"资产名称"...} | | | 返回值 | 返回数据更新结果 | {"MatchedCount":1,"ModifiedCount":1,"UpsertedCount":0,"UpsertedID":null} | |

根据id更新资产数据

| 方法 | updateNodeById(id, data)  | | | | --- | --- | --- | --- | | 参数说明 | 参数名 | 必选 | 说明 | | id | 否 | 资产id | | | data | 否 | 资产对象数据,例子{"name":"资产名称"...} | | | 返回值 | 返回数据更新结果 | {"MatchedCount":1,"ModifiedCount":1,"UpsertedCount":0,"UpsertedID":null} | |

根据表名及过滤器查询工作表数据

| 方法 | getExtData(tableName, query)  | | | | --- | --- | --- | --- | | 参数说明 | 参数名 | 必选 | 说明 | | tableName | 否 | 工作表名称 | | | query | 否 | json对象属性非全部必要,可根据需求选取,详情请看接口文档,例{"limit":30,"skip":20,"sort":{"age":-1,"posts":1},"filter":{"name":"Tom","fullname":{"$regex":"la"},"withCount":true},参数具体信息请参考《平台接口文档》 | | | 返回值 | 返回工作表数据数组 | [{"id":"id"...}] | |

根据表名及id查询工作表数据

| 方法 | getExtDataById(tableName, id) | | | | --- | --- | --- | --- | | 参数说明 | 参数名 | 必选 | 说明 | | tableName | 工作表名称 | 工作表名称 | | | id | 是 | 主键id | | | 返回值 | 返回工作表数据 | {"id":"id","name":"名称"...} | |

根据表名保存一条工作表数据

| 方法 | saveExtData(tableName, data) | | | | --- | --- | --- | --- | | 参数说明 | 参数名 | 必选 | 说明 | | tableName | 否 | 工作表名称 | | | data | 否 | 工作表对象数据,例 {"name":"名称"...} | | | 返回值 | 返回保存结果 | {"InsertedID":"唯一标识"} | |

根据表名及id删除一条工作表数据

| 方法 | deleteExtDataById(tableName, id) | | | | --- | --- | --- | --- | | 参数说明 | 参数名 | 必选 | 说明 | | tableName | 否 | 工作表名称 | | | id | 否 | 主键id | | | 返回值 | 返回删除结果 | {"DeletedCount":1} | |

根据表名、id及数据替换原有工作表数据

| 方法 | replaceExtDataById(tableName, id, data)  | | | | --- | --- | --- | --- | | 参数说明 | 参数名 | 必选 | 说明 | | tableName | 否 | 工作表名称 | | | id | 否 | 主键id | | | data | 否 | 工作表对象数据,例 {"name":"名称"...} | | | 返回值 | 返回数据更新结果 | {"MatchedCount":1,"ModifiedCount":1,"UpsertedCount":0,"UpsertedID":null} | |

根据表名、id及数据更新工作表数据

| 方法 | updateExtDataById(tableName, id, data)  | | | | --- | --- | --- | --- | | 参数说明 | 参数名 | 必选 | 说明 | | tableName | 否 | 工作表名称 | | | id | 否 | 主键id | | | data | 否 | 工作表对象数据,例 {"name":"名称"...} | | | 返回值 | 返回数据更新结果 | {"MatchedCount":1,"ModifiedCount":1,"UpsertedCount":0,"UpsertedID":null} | |

根据过滤器查询报警数据

| 方法 | getWarning(query, archive)  | | | | --- | --- | --- | --- | | 参数说明 | 参数名 | 必选 | 说明 | | archive | 否 | true表示操作归档报警 | | | query | 否 | json对象属性非全部必要,可根据需求选取,详情请看接口文档,例{"limit":30,"skip":20,"sort":{"age":-1,"posts":1},"filter":{"name":"Tom"},withCount":true},参数具体信息请参考《平台接口文档》 | | | 返回值 | 返回报警数据数组 | [{"id":"id","name":"报警名称"...}] | |

根据报警id查询报警数据

| 方法 | getWarningById(id, archive) | | | | --- | --- | --- | --- | | 参数说明 | 参数名 | 必选 | 说明 | | id | 否 | 报警id | | | archive | 否 | true表示操作归档报警 | | | 返回值 | 返回模型报警 | {"id":"id","desc":"描述"...} | |

保存一条报警数据

| 方法 | saveWarning(data, archive) | | | | --- | --- | --- | --- | | 参数说明 | 参数名 | 必选 | 说明 | | data | 否 | 报警对象数据,例 {"desc":"报警信息描述"...} | | | archive | 否 | true表示操作归档报警 | | | 返回值 | 返回保存结果 | {"InsertedID":"报警唯一标识"} | |

删除一条报警数据

| 方法 | deleteWarningById(id, archive) | | | | --- | --- | --- | --- | | 参数说明 | 参数名 | 必选 | 说明 | | id | 否 | 报警id | | | archive | 否 | true表示操作归档报警 | | | 返回值 | 返回删除结果 | {"DeletedCount":1} | |

根据id及数据替换原有报警数据

| 方法 | replaceWarningById(id, archive, data) | | | | --- | --- | --- | --- | | 参数说明 | 参数名 | 必选 | 说明 | | id | 否 | 报警id | | | archive | 否 | true表示操作归档报警 | | | data | 否 | 报警对象数据,例 {"desc":"报警信息描述"...} | | | 返回值 | 返回数据更新结果 | {"MatchedCount":1,"ModifiedCount":1,"UpsertedCount":0,"UpsertedID":null} | |

根据id更新报警数据

| 方法 | updateWarningById(id, archive, data) | | | | --- | --- | --- | --- | | 参数说明 | 参数名 | 必选 | 说明 | | id | 否 | 报警id | | | archive | 否 | true表示操作归档报警 | | | data | 否 | 资产对象数据,例子{"name":"资产名称"...} | | | 返回值 | 返回数据更新结果 | {"MatchedCount":1,"ModifiedCount":1,"UpsertedCount":0,"UpsertedID":null} | |

获取驱动配置,驱动服务使用此接口

| 方法 | driverConfig(driverId, serviceId)  | | | | --- | --- | --- | --- | | 参数说明 | 参数名 | 必选 | 说明 | | driverId | 否 | 驱动id | | | serviceId | 否 | 服务id | | | 返回值 | 返回启动配置 | [{"id":"","name":""}] | |

部署发布

通过docker打包部署,部署方式,参考《服务发布部署文档》。