NodeJS使用并解析.properties配置文件
/**
* Created with JetBrains WebStorm.
* User: 王文龙
* Email: longxinanlan[@msn](/user/msn).cn
* Date: 12-6-8 下午12:06
* 解析properties文件
*/
var fs = require('fs');
exports.parseproperties = function(uri, encoding){
var encoding = encoding==null?'UTF-8':encoding; //定义编码类型
try {
var content = fs.readFileSync(uri, encoding);
var regexjing = /\s*(#+)/; //去除注释行的正则
var regexkong = /\s*=\s*/; //去除=号前后的空格的正则
var keyvalue = {}; //存储键值对
var arr_case = null;
var regexline = /.+/g; //匹配换行符以外的所有字符的正则
while(arr_case=regexline.exec(content)) { //过滤掉空行
if (!regexjing.test(arr_case)) { //去除注释行
keyvalue[arr_case.toString().split(regexkong)[0]] = arr_case.toString().split(regexkong)[1]; //存储键值对
console.log(arr_case.toString());
}
}
} catch (e) {
//e.message //这里根据自己的需求返回
return null;
}
return keyvalue;
}
这样只能暂时解析如下的格式: #邮件服务参数
mail_host=smtp.gmail.com
下面这样格式的还没处理: #邮件服务参数
mail_host=smtp.gmail.com #定义用来发送邮件的邮箱服务器
下次更新了再写好一点,经验不足,欢迎吐槽……
6 回复
还不太会用这个客户端编辑器的代码高亮,将就着吧!
haha
JSON对于人来说,可视化不如properties,在我看来JSON适合数据传输,properties适合简单的做简单的属性配置
楼主,请教你的代码头部的文件作者时间是在webstorm通过什么快捷键生成的啊?
配置项多时,用JSON简直要疯掉的节奏