Browserify 包中的 NodeJS os.networkInterfaces() returns [Object object]

NodeJS os.networkInterfaces() returns [Object object] in Browserify bundle

我是 NodeJS Browserify 的初学者,我编写了一个简单的模块来列出网络接口,并 return 将它提供给查看网页的人。我开始写 main.js 文件,

var os = require("os");
document.write(os.networkInterfaces());

然后我通过这个命令 browserify main.js -o bundle.js 编译了代码,完成后没有产生任何输出但导致了创建bundle.js。这是html代码发挥作用的时候,

<html>
    <body>
        Hi, here are your network interfaces:
        <script src="bundle.js"></script>
    </body>
</html>

加载页面时它说,嗨,这是你的网络接口:[object Object] 当我期待 NodeJS 说它是 os.networkInterfaces( ) 调用时函数 returns。我做错了什么,我该如何解决?

browserify无关。
document.write 尝试通过调用对象原型的 Object#toString() 函数来字符串化该对象。

因此,如果要打印字符串,请使用 JSON.stringify(obj, null, 2)(2 代表 2 个空格,用于美化)

var os = require("os");
document.write(JSON.stringify(os.networkInterfaces(), null, 2)));

注意:您可以在控制台中输入:

console.log({"foo":"bar"}.toString());

此外,如果你想在浏览器中使用os模块,你需要使用os-browserify