hjyssg / ShiguReader

硬核宅宅资源管理器. Ultimate Manga Resource Manager
MIT License
401 stars 45 forks source link

这一行有时会报错 #81

Closed mmqmzk closed 4 years ago

mmqmzk commented 4 years ago

machineLearning.js#L238

bayes 可能会等于 undefined

(node:2198) UnhandledPromiseRejectionWarning: TypeError: Cannot read property 'predict' of undefined

然后 lsdir 调用就无下文了

hjyssg commented 4 years ago

const by = require('ml-naivebayes'); bayes = new by.GaussianNB();

你没npm install这个吧

mmqmzk commented 4 years ago

npm list 了一下, 有这个包的 ml-naivebayes@4.0.0

hjyssg commented 4 years ago

https://github.com/hjyssg/ShiguReader/commit/b3f5dd7f3b3ec54cfb25cdfd59b4453dd6cf10aa

mmqmzk commented 4 years ago

大哥你改错了,是 bayes 可能会等于 undefined, 不是 bayes 可能会没有 predict。

要说怎么重现,我就是打开个目录就出现了啊,总不能让你下载一遍我的目录吧。

这个估计可能跟系统有关,node.js 有些模块跨平台有问题。大哥在 Windows 下开发的吧,没有 Linux 环境吗,是 Windows 10 的话用 wsl 试试?安利一下好用极了的。

要不下次我提 pr,但是我不知道错误发生的根本原因,就是判空一下不让报错。

或者改一下流程,不要让 tag ml 相关的逻辑影响 lsdir 这种关键调用。

hjyssg commented 4 years ago

https://github.com/hjyssg/ShiguReader/commit/69144a326b66b3a19b76bbf35c51bc7e50df861d 你说得我一头雾水 因为要是bayes是undefined 那init函数的时候就已经报错了。

mmqmzk commented 4 years ago

好吧,我更新了一下,现在好了

但是之前的报错确实是 bayes 为空的问题, 就这么奇怪

2020-07-12T21:45:15: (node:2198) UnhandledPromiseRejectionWarning: TypeError: Cannot read property 'predict' of undefined
2020-07-12T21:45:15:     at /var/node/ShiguReader/src/server/models/machineLearning.js:238:38
2020-07-12T21:45:15:     at Array.forEach (<anonymous>)
2020-07-12T21:45:15:     at Object.guessIfUserLike (/var/node/ShiguReader/src/server/models/machineLearning.js:235:16)
2020-07-12T21:45:15:     at /var/node/ShiguReader/src/server/routes/lsdir.js:78:51
hjyssg commented 4 years ago

真奇怪了 我加了try catch了。 这本来就是个娱乐功能。

mmqmzk commented 4 years ago

而且好像就这一个错误日志,init 的时候没报错 囧