UNPKG

gateway-module

Version:

for GW ,one of node-red module

58 lines (55 loc) 1.88 kB
const dbconfig={ user : process.env.DB_USER || '', password : process.env.DB_PASS || '', server : process.env.DB_HOST || '', database : process.env.DB_NAME || '', port : parseInt(process.env.DB_PORT) || 1433, showSql : process.env.SHOW_SQL || false, } const mssql = require('littlemssql'); const mssqlConn = mssql(dbconfig); const isMockData = process.env.ENABLE_MockData=='true'?true:false ; // const fs =require('fs'); //定义一个缓存,用来对比数据值判断 function cacheHandle() { //默认预设metric计数缓存对象 const cache = new Map(); const metric = { total: 0, filter: 0 }; cache.set('metric', metric); return cache; } async function getDevicesByType(cache,...deviceTypeIds) { let result; if (isMockData === true) { result = require('../config/mockData.json'); }else{ result = await mssqlConn.queryData(` select point.deviceId, point.monitor, point.monitorTypeId, point.isNumber, info.deviceTypeId, info.deviceNo, info.tenantId from ts_deviceInfo as info INNER JOIN ts_devicepoint as point on info.deviceId=point.deviceId where info.deviceTypeId in (${deviceTypeIds.join()}) `); result = result.recordset; } //缓存设备数据 // fs.writeFileSync('./config/mockData.json',JSON.stringify(result),{encoding:'utf-8'}); for (const device of result) { if (cache.has(device.deviceNo)) { cache.get(device.deviceNo).push(device); }else{ cache.set(device.deviceNo,new Array(device)); } } console.log("cache done"); } module.exports = { config: { sendTopic : process.env.WALLE_FILTERED_TOPIC || 'gate', deviceTypeIds : process.env.CACHE_DEVICETYP }, cache: cacheHandle, data: getDevicesByType };