NodeJS os.networkInterfaces()返回Browserify捆绑包中的[Object object]

时间:2018-08-06 15:54:14

标签: node.js browserify

我是Browserify for NodeJS的初学者,我编写了一个简单的模块,该模块将列出网络接口并将其返回给查看网页的人员。我首先编写了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>

在加载页面时,它说,嗨,这是您的网络接口:[对象对象] 当我期望NodeJS说它被调用时返回的字符串os.networkInterfaces()函数返回时。我做错了什么,该如何解决?

1 个答案:

答案 0 :(得分:0)

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