IC.Utility - imonology/ImonCloud-Doc GitHub Wiki

IC.Utility

createUUID() -- 建立新的 UUID

createToken() -- 建立新的 Token

createID() -- 建立新的 ID

getTrimedByteStringByLength(pString,trimedByteSz) -- 獲得 Btye String

clone(oldObject,level) -- Clone 物件

asyncCall(callback) -- Callback 功能

safeCall(callback) -- Callback 功能 -- 有防呆機制,使用callback,建議使用

timeoutCall(callback,timeout,msg) -- timeOut Callback 功能

getLocalIP(onDone) -- 獲取 LOCAL IP

getLocalDomain() -- 獲取 LOCAL Domain

HTTPpost(url_request,data_obj,onDone,content_type,encoding) -- HTTP POST 功能

HTTPget(url,onDone) -- HTTP GET 功能

convertJSON(data) -- String To Json

convertString(obj) -- Json To String

emailText(msg,onSuccess,onFail) -- 發送EMAIL 功能。

userSettings(section,name) -- 回傳 g_settings[section]; g_settings[section][name];

getDateTimeString() -- 回傳時間STRING。例如 200112312359000(年月日十分秒毫秒)

validatePath(path) -- 檢查 Path 是否存在

dumpError(err) -- 加工 錯誤訊息。

notifyAdmin -- 傳送EMAIL 給 admin 。

isPortOpen(port,onResponse) -- 檢查 PORT 是否開啟中

getSystemInfo() -- 獲得系統資訊

hash(data,type) -- hash 功能

localISOString(date,includeSeconds) -- ISO 時間資料 TO STRING -- yyyy-mm-ddThh:mm:ss

isBinary(str) -- 檢查 str 是否為 Binary

getLocalPort(onDone,name) -- 獲得 Local Port

getEntryServer(secured) -- 獲得 SERVER URL

mixin() -- mix two objects into same object -- require('utils-merge') -- 無說明

readJSON(path,onDone) --開檔案,讀取JSON 格式

readFile(path,onDone) --開檔案,讀取資料

writeFile(path,file,onDone) -- 寫入檔案

readSystemConfig(onDone) -- read ImonCloud config -- 無說明

writeSystemConfig(file,onDone)-- write ImonCloud config -- 無說明

getDateTimeJson(date) -- 獲得 DATE JSON 格式

getDateTimeTS(arg) -- 獲得 DATE STRING 格式 yyyymmdd-hhmmss

cleanArray(arg) -- 清空 ARRAY

findFiles(arg) -- 開啟檔案清單 arg[path,onDone,sortOption,rexmatch ,ctime{start,end} , mtime{start,end},reverse ,limit,outputFilenameOnly]

mkdirParent(dirPath,mode,callback) -- 建立 mkdir , fsmkdir(dirPath,mode, callback )

whichPartition(arg) arg = path array

---------------------------------------------------------------

###IC.Utility.asyncCall(callback);

功能說明

callback 功能

參考來源

變數說明

  • 傳入(input)

  • 傳出(callback)

  • 回傳(return)

範例

---------------------------------------------------------------

###IC.Utility.cleanArray(arg);

功能說明

清空 ARRAY

變數說明

  • 傳入(input)

    • arg

      變數類型: Array

      變數說明: 準備清空的 ARRAY。

  • 傳出(callback)

  • 回傳(return)

    • return newArray;

      變數類型: Array

      變數說明: 清空後 ARRAY 。

範例

---------------------------------------------------------------

###IC.Utility.clone(oldObject,level);

功能說明

Clone 物件。

變數說明

  • 傳入(input)

    • oldObject;

      變數類型: Object

      變數說明: 想要 Clone 的 Object

    • level;

      變數類型: int

      變數說明: 設定Clone層級

  • 傳出(callback)

  • 回傳(return)

    • return CloneObject;

      變數類型: Object

      變數說明: CloneObject

範例

---------------------------------------------------------------

###IC.Utility.convertJSON(data);

data = { "name" : "jon" }

功能說明

文字轉成 JSON 物件,String To Json

變數說明

  • 傳入(input)

  • 傳出(callback)

  • 回傳(return)

    • return JSONobj;

      變數類型: JSON

      變數說明: 回傳 JSON 物件

範例

---------------------------------------------------------------

###IC.Utility.convertString(obj);

功能說明

JSON 物件 轉成 文字,Json To String Json

變數說明

  • 傳入(input)

  • 傳出(callback)

  • 回傳(return)

    • return JsonString;

      變數類型: String

      變數說明: 文字型態的 JSON 資料

範例

---------------------------------------------------------------

###IC.Utility.createID();

功能說明

建立一個 ID。

變數說明

  • 傳入(input)

  • 傳出(callback)

  • 回傳(return)

    • return ID;

      變數類型: Int

      變數說明: ID

範例

---------------------------------------------------------------

###IC.Utility.createToken();

功能說明

建立一個 Token。

變數說明

  • 傳入(input)

  • 傳出(callback)

  • 回傳(return)

    • return Token;

      變數類型: longer Int

      變數說明: Token

範例

---------------------------------------------------------------

###IC.Utility.createUUID();

功能說明

建立一個 UUID。

變數說明

  • 傳入(input)

  • 傳出(callback)

  • 回傳(return)

    • return UUID;

      變數類型:unique

      變數說明:UUID

範例

---------------------------------------------------------------

###IC.Utility.dumpError(err);

功能說明

加工 錯誤訊息。

變數說明

  • 傳入(input)

    • err

      變數類型: Object Data

      變數說明: {"message" : message ,"stack" : stack }

  • 傳出(callback)

  • 回傳(return)

    • return msg;

      變數類型: String

      變數說明: 加工後,錯誤訊息。

範例

---------------------------------------------------------------

###IC.Utility.emailText(msg,onSuccess,onFail);

onSuccess= function( res )

onFail= function( message )

設定 EMAIL 資訊, 需要設定 IC.Settings.EMAIL_CONFIG 。

功能說明

發送EMAIL 功能。

變數說明

  • 傳入(input)

    • msg

      變數類型: String

      變數說明: E-MAIL 信件內容。

  • 傳出(callback)

    • onSuccess(res)

      變數類型: callback function

      變數說明: 成功回傳。 onSuccess= function(res)

      + res
      
         變數類型:  Boolean
      
         變數說明: 傳出,true。
      
    • onFail(message)

      變數類型: callback function

      變數說明: 失敗回傳。 onFail = function(message)

      + message
      
         變數類型:  String  
      
         變數說明: 傳出,錯誤訊息。
      
  • 回傳(return)

範例

---------------------------------------------------------------

###IC.Utility.findFiles(arg);

arg[path,onDone,sortOption,rexmatch ,ctime{start,end} ,mtime{start,end},reverse ,limit,outputFilenameOnly]

arg.onDone(errMsg);

arg.onDone(FileList);

功能說明

開啟檔案清單

變數說明

  • 傳入(input)

    • arg

      變數類型: Data Object

      變數說明:

{

path

,onDone

,sortOption

,rexmatch

,ctime{start,end}

,mtime{start,end}

,reverse

,limit

,outputFilenameOnly

}

path:String

onDone:function

sortOption:String

type 'filenameLocale':

type 'filename':

type 'lengthOfFilename':

type 'atime':

type 'mtime':

type 'ctime':

type 'filesize':

rexmatch:String

,ctime{start,end} :object ,start:int ,end:int

,mtime{start,end} :object ,start:int ,end:int

,limit:int

,outputFilenameOnly:boolean

  • 傳出(callback)

    • arg.onDone(errMsg);

      變數類型: callback function

      變數說明: onDone = function(errMsg)

      + errMsg 
      
         變數類型:  string
      
         變數說明: 網頁傳送錯誤訊息
      
    • arg.onDone(FileList);

      變數類型: callback function

      變數說明: onDone = function(FileList)

      + FileList 
      
         變數類型:  Array 
      
         變數說明: File Data
      
  • 回傳(return)

範例

---------------------------------------------------------------

###IC.Utility.getDateTimeJson(date);

功能說明

Date 轉 JSON 格式

變數說明

  • 傳入(input)

    • date

      變數類型: DATE

      變數說明: DATE 資料格式

  • 傳出(callback)

  • 回傳(return)

    • return timeObj;

      變數類型: JSON OBJECT

      變數說明: JSON格式 的 DATE 資料。

範例

---------------------------------------------------------------

###IC.Utility.getDateTimeString();

功能說明

回傳時間STRING。例如 200112312359000(年月日十分秒毫秒)

變數說明

  • 傳入(input)

  • 傳出(callback)

  • 回傳(return)

    • return TimeString;

      變數類型: String

      變數說明: 回傳時間STRING。例如 200112312359000(年月日十分秒毫秒)。

範例

---------------------------------------------------------------

###IC.Utility.getDateTimeTS(date);

功能說明

Date 轉 JSON 格式

變數說明

  • 傳入(input)

    • arg

      變數類型: array

      變數說明: DATE 資料格式 Array

  • 傳出(callback)

  • 回傳(return)

    • return result.Y + result.M + result.D + '-' + result.h + result.m + result.s;

      變數類型: string

      變數說明: yyyymmdd-hhmmss

範例

---------------------------------------------------------------

###IC.Utility.getEntryServer(secured);

功能說明

獲得 SERVER URL 。 HTTPS OR HTTP 。

變數說明

  • 傳入(input)

    • secured

      變數類型: Boolean

      變數說明: 是否為 安全連結。

  • 傳出(callback)

  • 回傳(return)

    • return (secured ? 'https' : 'http') URL;

      變數類型: string

      變數說明: secured = ture 回傳 HTTPS 。 secured = false 回傳 HTTP 。

範例

---------------------------------------------------------------

###IC.Utility.getLocalDomain();

功能說明

獲得 LocalDomain。

變數說明

  • 傳入(input)

  • 傳出(callback)

  • 回傳(return)

    • return domain;

      變數類型: String

      變數說明: 回傳 domain

範例

---------------------------------------------------------------

###IC.Utility.getLocalIP(onDone);

功能說明

使用 Callback 傳出 localIP 。

變數說明

  • 傳入(input)

  • 傳出(callback)

  • 回傳(return)

    • return IC.Utility.safeCall(onDone,localIP);

      變數類型: callback function

      變數說明: 使用 Callback 傳出 localIP 。

範例

---------------------------------------------------------------

###IC.Utility.getLocalPort(onDone,name);

onDone = function(res)

功能說明

獲得 Local Port

變數說明

  • 傳入(input)

    • name

      變數類型: String

      變數說明: PORT NAME

  • 傳出(callback)

    • onDone(resj)

      變數類型: callback function

      變數說明: onDone = function(res)

      + res
      
         變數類型:  JSON Object 
      
         變數說明: 回傳 0 。 OR 。 PORT
      
  • 回傳(return)

範例

---------------------------------------------------------------

###IC.Utility.getSystemInfo();

功能說明

獲得系統資訊

變數說明

  • 傳入(input)

  • 傳出(callback)

  • 回傳(return)

    • return { };

      變數類型: Data Object

      變數說明: 一些系統資訊 。

return {

	gid:		process.getgid ? process.getgid() : 'unknown',

	uid:		process.getuid ? process.getuid() : 'unknown',

	arch:		process.arch,

    osarch:     os.arch(),

	platform: 	process.platform,

    osplatform: os.platform(),

    ostype:     os.type(),

    osrelease:  os.release(),

	node_ver:	process.version,

	start_time: IC.Stat.startTime,

	uptime: 	process.uptime(),

	hostname:  	os.hostname(),

	mem_total: 	os.totalmem(),

	mem_free:  	os.freemem(),

	mem_proc:	IC.sys.inspect(process.memoryUsage()),

	net_in:		IC.Stat.get('net_in'),

	net_out:	IC.Stat.get('net_out'),

	conn_count: IC.Conn.getConnCount(),

	cpu_load:	os.loadavg(),

	cpus: 		os.cpus(),

	channels:	IC.Comm.list().length,

	subscribers: IC.Comm.count(),

    additional: realtimeInfo,

}

範例

---------------------------------------------------------------

###IC.Utility.getTrimedByteStringByLength(pString,trimedByteSz);

功能說明

獲得 ByteString ,可設定獲得文字長度。

變數說明

  • 傳入(input)

    • pString;

      變數類型: ByteString

      變數說明: 需要處理的 ByteString

    • trimedByteSz;

      變數類型: int

      變數說明: 設定長度

  • 傳出(callback)

  • 回傳(return)

    • return ByteStringByLength;

      變數類型: String

      變數說明: 回傳設定長度的ByteString

範例

---------------------------------------------------------------

###IC.Utility.hash(data,type);

功能說明

hash 功能

變數說明

  • 傳入(input)

    • data

      變數類型: String

      變數說明: data

    • type

      變數類型: String

      變數說明: crypto.createHash(type);

  • 傳出(callback)

  • 回傳(return)

    • return data;

      變數類型: string

      變數說明: hash 後 資料。

範例

---------------------------------------------------------------

###IC.Utility.HTTPget(url,onDone);

功能說明

HTTP GET 功能

變數說明

  • 傳入(input)

    • url

      變數類型: String

      變數說明: 傳送位置的URL

  • 傳出(callback)

    • onDone(res_obj)

      變數類型: callback function

      變數說明: onDone = function(res_obj)

      + res_obj
      
         變數類型:  JSON Object 
      
         變數說明: 網頁,連線資訊
      
  • 回傳(return)

範例

---------------------------------------------------------------

###IC.Utility.HTTPpost(url_request,data_obj,onDone,content_type,encoding);

onDone = function(error,res,resObj)

參考資料

功能說明

HTTP POST 功能

變數說明

  • 傳入(input)

    • url_request

      變數類型: String

      變數說明: 傳送位置的URL

    • data_obj

      變數類型: Object Data

      變數說明: {"NAME" : NAME }

    • content_type

      變數類型: String

      變數說明: 網頁Content設定,無指定,預設 application/json 。

      • content_type = form
    • encoding

      變數類型: String

      變數說明: 網頁編碼設定,無指定,預設 UTF8 。

  • 傳出(callback)

    • onDone(error,res,resObj)

      變數類型: callback function

      變數說明: onDone = function(error,res,resObj)

      + error 
      
         變數類型:  string
      
         變數說明: 網頁傳送錯誤訊息
      
      + res
      
         變數類型:  JSON Object 
      
         變數說明: 網頁,連線資訊
      
      + resObj
      
         變數類型:  JSON Object  
      
         變數說明: 網頁畫面,資料。
      
  • 回傳(return)

範例

---------------------------------------------------------------

###IC.Utility.isBinary(data);

參考資料

功能說明

data 是否為 Binary

變數說明

  • 傳入(input)

    • data

      變數類型: String

      變數說明: 資料

  • 傳出(callback)

  • 回傳(return)

    • return Boolean;

      變數類型: Boolean

      變數說明: 回傳是否為 Binary。

範例

---------------------------------------------------------------

###IC.Utility.isPortOpen(port,onResponse);

onResponse( res:boolean  );	

功能說明

檢查 PORT 是否開啟中

變數說明

  • 傳入(input)

    • port

      變數類型: INT

      變數說明: PORT

  • 傳出(callback)

    • onResponse( res:boolean )

      變數類型: callback function

      變數說明: onResponse= function(res)

      + res
      
         變數類型:  boolean
      
         變數說明:  回傳 檢查結果 。 TURE = 開啟中。 FLASH = 無。
      
  • 回傳(return)

範例

---------------------------------------------------------------

###IC.Utility.localISOString(date,includeSeconds);

參考資料

功能說明

ISO 時間資料 TO STRING -- yyyy-mm-ddThh:mm:ss

變數說明

  • 傳入(input)

    • date

      變數類型: DAtE

      變數說明: new Date(),時間物件

    • includeSeconds

      變數類型: int

      變數說明: 增加秒數(暫無功能)

  • 傳出(callback)

  • 回傳(return)

範例

---------------------------------------------------------------

###IC.Utility.mkdirParent(dirPath,mode,callback);

callback = function(error)

功能說明

建立 mkdir ,fs.mkdir(dirPath,mode,callback )

變數說明

  • 傳入(input)

    • dirPath,,

      變數類型: String

      變數說明: 檔案位置的 PATH

    • mode

      變數類型: String

      變數說明: FILE MODE

  • 傳出(callback)

    • callback(error)

      變數類型: callback function

      變數說明: callback = function(error)

      + error 
      
         變數類型:  string
      
         變數說明: 網頁傳送錯誤訊息
      
  • 回傳(return)

範例

---------------------------------------------------------------

###IC.Utility.notifyAdmin(title,msg,email);

功能說明

傳送EMAIL 給 admin 。

變數說明

  • 傳入(input)

    • title

      變數類型: String

      變數說明: EMAIL title

    • msg

      變數類型: String

      變數說明: EMAIL msg

    • email

      變數類型: String

      變數說明: email 位置 。

  • 傳出(callback)

  • 回傳(return)

    • return true;

      變數類型: Boolean

      變數說明: 成功寄出 。

    • return false;

      變數類型: Boolean

      變數說明: 失敗 。

範例

---------------------------------------------------------------

###IC.Utility.readFile(path,onDone);

onDone = function( res )

功能說明

開檔案

變數說明

  • 傳入(input)

    • path

      變數類型: String

      變數說明: 檔案位置 的 PATH

  • 傳出(callback)

    • onDone( res )

      變數類型: callback function

      變數說明: onDone = function( res)

      + res
      
         變數類型:  String 
      
         變數說明: 檔案資料, 如無資料為 NULL  。
      
  • 回傳(return)

範例

---------------------------------------------------------------

###IC.Utility.readJSON(path,onDone);

onDone = function( res )

功能說明

開檔案,讀取JSON 格式

變數說明

  • 傳入(input)

    • path

      變數類型: String

      變數說明: 檔案位置 的 PATH

  • 傳出(callback)

    • onDone( res )

      變數類型: callback function

      變數說明: onDone = function( res)

      + res
      
         變數類型:  JSON Object 
      
         變數說明: 檔案資料, 如無資料為 NULL  。
      
  • 回傳(return)

範例

---------------------------------------------------------------

###IC.Utility.safeCall(callback);

一般 callback 方式

var result = onDone(para1,para2,para3..)

防呆 callback 方式

var result = IC.Utility.safeCall(onDone,para1,para2,para3...)

/dev/settings.js

if (settings.MODE === 'dev' || settings.MODE === 'src') {

settings.SAFE_CALL        = false;

} else if (settings.MODE === 'prod') {

settings.SAFE_CALL        = true;

}

settings.SAFE_CALL 設定 是否安全執行 callback

功能說明

執行 callback 的安全執行方式。

變數說明

  • 傳入(input)

  • 傳出(callback)

  • 回傳(return)

    • return return_value;

      變數類型: boolean

      變數說明: 假如 callback 不是function,回傳 false;

範例

---------------------------------------------------------------

###IC.Utility.timeoutCall(callback,timeout,msg);

功能說明

使用 Timeout 方式,執行callback 。

變數說明

  • 傳入(input)

    • callback;

      變數類型: function

      變數說明: callback function

    • timeout;

      變數類型: int

      變數說明: timeout 秒數( 1/1000 )

    • msg;

      變數類型: String

      變數說明: timeOut Callback 加入 LOG.error(msg);

  • 傳出(callback)

  • 回傳(return)

    • return function () {};

      變數類型: function

      變數說明: 假如,callback 不等於 function ,或者 timeout 不等於 number ,回傳空 function

範例

---------------------------------------------------------------

###IC.Utility.userSettings(section,name);

功能說明

獲得 g_settings[section];

獲得 g_settings[section][name];

變數說明

  • 傳入(input)

    • section

      變數類型: String

      變數說明: section

    • name

      變數類型: String

      變數說明: name

  • 傳出(callback)

  • 回傳(return)

    • return g_settings[section];

      變數類型: string

      變數說明: 回傳 g_settings[section]。

    • return g_settings[section][name];

      變數類型: string

      變數說明: 回傳 g_settings[section][name]。

    • return undefined;

      變數類型: undefined

      變數說明: 空資料,回傳 undefined 。

範例

---------------------------------------------------------------

###IC.Utility.validatePath(path);

功能說明

檢查 Path 是否存在

變數說明

  • 傳入(input)

    • path

      變數類型: String

      變數說明: 資料夾位置 PATH

  • 傳出(callback)

  • 回傳(return)

    • return false;

      變數類型: Boolean

      變數說明: Path 不存在,回傳 false 。

    • return true;

      變數類型: Boolean

      變數說明: Path 存在,回傳 true。

範例

---------------------------------------------------------------

###IC.Utility.whichPartition(arg);

功能說明

arg = path array

變數說明

  • 傳入(input)

    • arg

      變數類型: Array

      變數說明: Path Array

  • 傳出(callback)

  • 回傳(return)

    • return partitions;

      變數類型: array

      變數說明: partitions 。

範例

---------------------------------------------------------------

###IC.Utility.writeFile(path,file,onDone);

onDone = function(Boolean)

功能說明

寫入檔案

變數說明

  • 傳入(input)

    • path

      變數類型: String

      變數說明: 寫檔案位置的PATH

    • file

      變數類型: Data

      變數說明: 檔案資料

  • 傳出(callback)

    • onDone(Boolean)

      變數類型: callback function

      變數說明: onDone = function(Boolean)

      + Boolean 
      
         變數類型:  Boolean
      
         變數說明: 回傳 成功 ,失敗。
      
  • 回傳(return)

範例