无法在nodejs中获取底板序列号

时间:2019-03-22 08:27:25

标签: node.js system-information

我正在vmware中运行ubuntu。我正在尝试获取底板的序列号。

var si = require("systeminformation");
console.log(si.baseboard().serial);

返回未定义。这是我的代码中的问题吗?还是问题是ubuntu在vmware中运行?

3 个答案:

答案 0 :(得分:0)

systeminformation源中可以看到here正在读取文件/sys/devices/virtual/dmi/id/board_serial(如果运行dmidecode -t 2 2>/dev/null失败)。

如果您在外壳中cat /sys/devices/virtual/dmi/id/board_serial(如果存在的话),您会得到什么?

如果为空或不存在,则您的环境不提供数据。

答案 1 :(得分:0)

要完成AKX答案,si.baseboard()返回一个 Promise (自v3起),因此您必须执行以下操作:

si.baseboard().then(el => console.log(el.serial))

或者,如果您想坚持使用回调语法

si.baseboard(el => { console.log(el.serial) })

请注意,如果我以常规用户身份启动脚本,它将返回一个空字符串。仅当以root用户启动时,才能显示序列号。

答案 2 :(得分:0)

我发现即使在虚拟机上,我也可以使用序列号来获得唯一编号。

var serialNumber = require('serial-number');

serialNumber(function (err, value) {
 console.log(value);
});