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)
無