Closed mmqmzk closed 4 years ago
const by = require('ml-naivebayes'); bayes = new by.GaussianNB();
你没npm install这个吧
npm list
了一下, 有这个包的 ml-naivebayes@4.0.0
大哥你改错了,是 bayes 可能会等于 undefined, 不是 bayes 可能会没有 predict。
要说怎么重现,我就是打开个目录就出现了啊,总不能让你下载一遍我的目录吧。
这个估计可能跟系统有关,node.js 有些模块跨平台有问题。大哥在 Windows 下开发的吧,没有 Linux 环境吗,是 Windows 10 的话用 wsl 试试?安利一下好用极了的。
要不下次我提 pr,但是我不知道错误发生的根本原因,就是判空一下不让报错。
或者改一下流程,不要让 tag ml 相关的逻辑影响 lsdir 这种关键调用。
https://github.com/hjyssg/ShiguReader/commit/69144a326b66b3a19b76bbf35c51bc7e50df861d 你说得我一头雾水 因为要是bayes是undefined 那init函数的时候就已经报错了。
好吧,我更新了一下,现在好了
但是之前的报错确实是 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
真奇怪了 我加了try catch了。 这本来就是个娱乐功能。
而且好像就这一个错误日志,init 的时候没报错 囧
machineLearning.js#L238
bayes
可能会等于 undefined然后
lsdir
调用就无下文了