代码展示
/**
* @Author: KjPrime
* @description: 打印模块
* - 打印正确和打印错误
* - 打印行数和打印文件名
* - 未完成 将打印结果存储
*/
let c = {
'end' : '\x1B[0m', //
'bright' : '\x1B[1m', // 亮色
'grey' : '\x1B[2m', // 灰色
'italic' : '\x1B[3m', // 斜体
'underline' : '\x1B[4m', // 下划线
'reverse' : '\x1B[7m', // 反向
'hidden' : '\x1B[8m', // 隐藏
'black' : '\x1B[30m', // 黑色
'red' : '\x1B[31m', // 红色
'green' : '\x1B[32m', // 绿色
'yellow' : '\x1B[33m', // 黄色
'blue' : '\x1B[34m', // 蓝色
'magenta' : '\x1B[35m', // 品红
'cyan' : '\x1B[36m', // 青色
'white' : '\x1B[37m', // 白色
'blackBG' : '\x1B[40m', // 背景色为黑色
'redBG' : '\x1B[41m', // 背景色为红色
'greenBG' : '\x1B[42m', // 背景色为绿色
'yellowBG' : '\x1B[43m', // 背景色为黄色
'blueBG' : '\x1B[44m', // 背景色为蓝色
'magentaBG' : '\x1B[45m', // 背景色为品红
'cyanBG' : '\x1B[46m', // 背景色为青色
'whiteBG' : '\x1B[47m', // 背景色为白色
};
let color = function(colour, msg){
return `${c[colour]}${msg}${c.end}`;
};
let date = function(){
return `${new Date().getFullYear()}-${new Date().getMonth() + 1}-${new Date().getDate()}/${new Date().toLocaleTimeString()}`;
};
var getStack = function() { // 参考网上的
var orig = Error.prepareStackTrace; // 存储Error对象
Error.prepareStackTrace = function(_, stack) { return stack; };
var err = new Error;
var stack = err.stack;
Error.prepareStackTrace = orig; // 复原Error对象
return stack[2]; // stack[0]为当前函数, stack[1]为调用者,stack[2]为上层调用者 以此类推
// getPosition 得到x轴位置 // getFunction // getFunctionName // getFileName // getLineNumber
};
let message = {
log(...msg) {
console.log(color("green", date()), "-", ...msg, "-", color("green", `(${getStack().getFileName()}:${getStack().getLineNumber()})`));
},
err(...msg) {
console.log(color("red", date()), "-", ...msg, "-", color("red", `(${getStack().getFileName()}:${getStack().getLineNumber()})`));
}
};
module.exports = message;
注:
将代码保存到一个文件中,再引用改模块,这样打印出来的行号和文件名才正常。