为什么我得到额外未定义的节点JS

我有两个文件在这里首先是app.js

var msg = require('./msg.js'); console.log("Hello World From app.js") console.log(msg()); 

另一个是msg.js

 var msg = function () { console.log("Hello World From msg.js"); } module.exports = msg; 

通过命令在控制台上运行时

 node app.js 

获得输出像
Hello World来自app.js
你好,世界从msg.js
未定义

所以我的问题是为什么有额外的undefined ? 我创build模块的方式有什么问题吗? 有没有更好的办法呢?

因为console.log(msg())试图通过msg()打印返回值,而msg()不会返回任何内容。

所以,试着调用msg() ,而不是console.log(msg())

 var msg = require('./msg.js'); console.log("Hello World From app.js") msg(); 

编辑:评论之后,

msg.js

 var msg = function () { return "Hello World From msg.js"; } module.exports = msg; 

app.js

 var msg = require('./msg.js'); console.log("Hello World From app.js") console.log(msg()); 

app.js中的代码应该固定为:

 var msg = require('./msg.js'); console.log("Hello World From app.js") msg(); 

您正在调用在另一个模块中声明的函数,您不应该控制台logging其输出。