в документации к библиотеке показано, что
.osInfo()
,
.cpu()
,
.currentLoad()
и
.mem()
— это
промисы.
результатом обычного указания
si.osInfo()
в коде будет объект Promise.
объект Promise не содержит свойств
platform
,
distro
и
kernel
, которые вы пытаетесь получить.
при попытке получить доступ к несуществующему свойству объекта результатом будет
undefined
.
то же самое касается и других —
si.cpu()
,
si.currentLoad()
и т.д.
касательно последних двух строк:
любые математические операции с
undefined
будут давать
NaN
.
вывод: сначала учим язык, а потом только пишем ботов и всё остальное — никак не наоборот.
https://learn.javascript.ru/promise-basics
https://learn.javascript.ru/async-await