由于遇到線上項(xiàng)目出現(xiàn)未知錯(cuò)誤的問題脂新。為了排除錯(cuò)誤,需要確定是否是前端有語法錯(cuò)誤。所以這里實(shí)現(xiàn)了一個(gè)將錯(cuò)誤日志發(fā)送給后臺(tái)打印日志的功能峭咒。
index.js
首先在前端入口文件進(jìn)行 window 和 Vue 的錯(cuò)誤監(jiān)聽蜒程,如果有錯(cuò)誤發(fā)送錯(cuò)誤信息到 node 中間層绅你。
Vue.config.errorHandler = function (err) {
post('error', {
data: {
error: err.stack
}
});
};
window.onerror = function(message, source, lineno, colno, error) {
post('error', {
data: {
error: error.stack
}
});
};
window.addEventListener('error', (event) => {
post('error', {
data: {
error: event.error.stack
}
});
});
error.js
在 node 后端層創(chuàng)建接口用于打印錯(cuò)誤日志。為了符合前端 ajax 規(guī)范所以請(qǐng)求返回了一個(gè) { code: 1 }
export default {
needLogin: false,
async handler(ctx) {
const params = ctx.request.body.error;
console.error(params)
ctx.ajax({
code: 1
});
}
}
注意
本文作用于工作項(xiàng)目中昭躺,僅供借鑒