Node.js运行print.js无输出原因咨询:JavaScript函数测试问题
问题分析与解决
你的代码有两个核心问题导致控制台完全没输出,咱们拆开来解释:
1. 函数定义后未调用
你已经写了printObject()函数,但只是完成了定义,并没有在代码里触发它执行。Node.js会逐行运行文件里的顶层代码,但不会自动调用你自定义的函数——也就是说,这个函数里的输出逻辑根本没机会跑起来。
2. process.stdout.write的用法有误
就算你调用了函数,当前的写法也达不到预期效果:
process.stdout.write()的第二个参数是字符编码(比如'utf8'),不是你想附加的输出内容。如果要输出多个内容,得把它们拼接成一个字符串,或者分多次调用write。- 直接输出对象
a的话,它会被默认转换成[object Object],看不到里面的属性值,需要用JSON.stringify(a)把对象转成可读的JSON字符串。
修正后的代码示例
用process.stdout.write的正确写法:
var a = { someProperty: 1 }; function printObject(){ // 拼接字符串后输出 process.stdout.write(`hello: ${JSON.stringify(a)}`); } // 必须调用函数才能执行内部逻辑 printObject();
如果追求更简单的写法,推荐用console.log(),它会自动处理对象输出,还自带换行:
var a = { someProperty: 1 }; function printObject(){ console.log("hello: ", a); } printObject();
现在运行node print.js,就能看到控制台正常输出hello: { someProperty: 1 }啦。
内容的提问来源于stack exchange,提问作者Manu Chadha
相关产品推荐
相关产品推荐

