welcome to xlongwei.com

欢迎大家一起学习、交流、分享


QQ:9167702333 邮箱:admin@xlongwei.com

文章ID调整为日期,精确到小时


分类 OurJS   关键字 杂谈   标签 ourjs   发布 hongwei  1429939697462
注意 转载须保留原文链接,译文链接,作者译者等信息。  
OurJS使用的文章ID是很长的uuid值,其实很容易就调整为日期格式的ID值,目前是精确到小时yyMMddHH有八位,等到发文多了可以调整到分钟。
  //article._id       = ObjectID().toString()
article._id = utility.format(new Date(), "yyMMddhh")

//如果按小时命名有冲突,就直接精确到分钟,注意fs.writeFile需要在异步回调里,否则会写入冲突文件中
fs.stat(path.join(dir, article._id), function(err, stats){
if(!err){
console.log("article exist: "+article._id);
article._id = utility.format(new Date(), "yyMMddhhmm")
}

var file = path.join(dir, article._id)

fs.writeFile(file, JSON.stringify(article), function(err) {
if (err) {
console.log(err)
return cb(false)
}
return cb(true)
})
})

日期格式化代码
utility.format = function(date, format) {
	var o = {
		"M+" : date.getMonth() + 1, // month
		"d+" : date.getDate(), // day
		"h+" : date.getHours(), // hour
		"m+" : date.getMinutes(), // minute
		"s+" : date.getSeconds(), // second
		"q+" : Math.floor((date.getMonth() + 3) / 3), // quarter
		"S" : date.getMilliseconds() // millisecond
	}

	if (/(y+)/.test(format)) {
		format = format.replace(RegExp.$1, (date.getFullYear() + "")
				.substr(4 - RegExp.$1.length));
	}

	for ( var k in o) {
		if (new RegExp("(" + k + ")").test(format)) {
			format = format.replace(RegExp.$1, RegExp.$1.length == 1 ? o[k]
					: ("00" + o[k]).substr(("" + o[k]).length));
		}
	}
	return format;
}