Files
desktop-app/node_modules/common.js
2015-02-08 22:07:20 +08:00

130 lines
2.6 KiB
JavaScript

var fs = require('fs');
var User = require('user');
var Evt = require('evt');
var ObjectId = require('objectid');
// var gui = require('nw.gui');
// console.log(gui.App);
/*
// 开发版
process.on('uncaughtException', function (err) {
// 打印出错误
console.log('~!!~ uncaughtException ~!!~');
console.log(err);
// 打印出错误的调用栈方便调试
console.log(err.stack);
});
*/
function log(o) {console.log(o)}
// log("<>>>>>>>>>>>>>>>>>>>>");
var Common = {
objectId: function() {
return ObjectId()
},
_uuid: 1,
uuid: function() {
this._uuid++;
return ((new Date()).getTime()) + '_' + this._uuid;
},
isOk: function(ret) {
if(!ret) {
return ret;
}
if(typeof ret == 'object') {
// 数组
if('length' in ret) {
return true;
}
if('Ok' in ret && !ret.Ok) { // 指明了Ok
return false;
}
return true;
}
return false;
},
// 复制文件
copyFile: function(src, dist, callback) {
if(!src || !dist) {
return callback && callback(false);
}
var readStream = fs.createReadStream(src);
var writeStream = fs.createWriteStream(dist);
readStream.pipe(writeStream);
readStream.on('end', function () {
callback && callback(true);
});
readStream.on('error', function () {
callback && callback(false);
});
},
inArray: function(arr, item) {
var me = this;
if(!arr) {
return false;
}
for(var i = 0; i < arr.length; i++) {
if(arr[i] == item) {
return true;
}
}
return false;
},
isImageExt: function(ext) {
var me = this;
if(!ext) {
return false;
}
ext = ext.toLowerCase();
return me.inArray(['jpg', 'jpeg', 'bmp', 'png', 'gif'], ext);
},
// 拆分filePath的各个部分
splitFile: function(fullFilePath) {
var ret = {
path: "", // a/b
name: "", // c.js
nameNotExt: "", // a
ext: "", // js
getFullPath: function() {
var me = this;
if(me.path) {
if(me.ext) {
return me.path + '/' + me.nameNotExt + '.' + me.ext;
} else {
return me.path + '/' + me.nameNotExt;
}
} else {
if(me.ext) {
return me.nameNotExt + '.' + me.ext;
} else {
return me.nameNotExt;
}
}
}
}
if(!fullFilePath) {
return ret;
}
var strs = fullFilePath.split('/');
if(strs.length == 1) {
ret.name = strs;
} else {
ret.name = strs[strs.length - 1];
strs.pop();
ret.path = strs.join('/');
}
var names = ret.name.split('.');
if(names.length > 1) {
ret.ext = names[names.length - 1];
names.pop();
ret.nameNotExt = names.join('.');
} else {
ret.nameNotExt = ret.name;
}
return ret;
}
};
module.exports = Common;