Peng-YM / QuanX

Scripts for QX, Loon, Surge, and ShadowRocket!
GNU General Public License v3.0
1.61k stars 176 forks source link

彩云天气错误通知 [object Object] 改为具体显示 #26

Closed zZPiglet closed 4 years ago

duhd1993 commented 3 years ago

不仅是这个脚本里,openapi有几处console.log(e)也只会输出[object object]

zZPiglet commented 3 years ago

不仅是这个脚本里,openapi有几处console.log(e)也只会输出[object object]

请使用: $.error(JSON.stringify(err, Object.getOwnPropertyNames(err))); 来避免显示错误。

duhd1993 commented 3 years ago

谢谢。我看到openapi已经提供了不同的log api了。不过我说的是,openapi自己的代码里有裸的console.log(err)。我运行这个脚本的时候log里有[object object],只可能是openapi部分出的,没检查具体是哪个

duhd1993 commented 3 years ago

破案了, https://github.com/zZPiglet/QuanX/blob/64b18d7e20d9aa1881e561fc0ef7a4b04f735711/Tasks/caiyun.js#L140

<<<140
$.info(location)
>>>
$.info(JSON.stringify(location))

不过后面openapi的确有几个error的callback里是console.log(e),是有问题的。

Peng-YM commented 3 years ago

谢谢提醒,会改进一下OpenAPI的行为,提供一个对象的时候默认输出其Stringify后的结果

Peng-YM commented 3 years ago

这个提交已经修复了OpenAPI的此类问题。现在直接传入一个Object会先进行Stringify之后输出对应的log。如果无法进行stringify,则输出为[object]

duhd1993 commented 3 years ago

this.node.fs.writeFileSync(e,JSON.stringify({}),{flag:"wx"},e=>console.log(e)) 还有一点是这个console.log会不会有问题?不过这个callback应该基本不可能用到。

Peng-YM commented 3 years ago

this.node.fs.writeFileSync(e,JSON.stringify({}),{flag:"wx"},e=>console.log(e)) 还有一点是这个console.log会不会有问题?不过这个callback应该基本不可能用到。

这个console.log是由node处理的,node.js可以正确输出错误信息(即使e是一个对象)。不过这里可以改成$.error(e)比较统一。