tool.js文件
const formatDate = (dateTime) => {
const date = new Date(dateTime) // 转换成Data()
const y = date.getFullYear()
const m = date.getMonth() + 1
m = m < 10 ? '0' + m : m
const d = date.getDate()
d = d < 10 ? ('0' + d) : d
return [y,m,d].join('-')
}
module.exports={formatDate}
test.js文件
const test = require('./tool')
console.log(test);
let res = test.formatDate(Date.now())
console.log(res);
在文件引入时,会产生如下错误

终端打印可以发现,第一次打印已经拿到了tool.js模块,但是第二次打印却直接报错,说明模块中的代码无法调用.
第一步检查调用方法是否正确,可知test中方法调用没有问题,则可得到是模块中哪个部位出了错误;
第二部检查tool模块运行代码是否正确,表达式,返回值都没有问题,module.exports是固定格式同样没有问题.
此时就需要思考是否是自己平常的习惯造成的错误,检查声明:已知const是用来声明常量的,常量特点是不能修改值,
而m = m < 10 ?
然而变量声明可以用来声明常量,常量声明不能用来声明变量,此时问题就已经找到答案了,
只需将 const m = date.getMonth() + 1 与 const d = date.getDate()更改为
let m = date.getMonth() + 1 let d = date.getDate()即可解决
完整写法变成下面这样
const formatDate = (dateTime) => {
const date = new Date(dateTime)
const y = date.getFullYear()
let m = date.getMonth() + 1
m = m < 10 ? '0' + m : m
let d = date.getDate()
d = d < 10 ? ('0' + d) : d
return [y,m,d].join('-')
}

此时已经正确打印出来结果
其实,也可以通过终端直接查看具体错误,如图

有一个朝上的角标,以及上一行提示的tool.js文件中第五行无法读取,检查三元表达式无误就可以直接定位了上一行了.
正因为bug总是出现在不起眼的角落,才越发显得难以处理,而真正的大问题其实都是一个个小问题的积累.
希望自己每一步都迈得坚实,不求快但求稳.