为什么我在节点JS上获得额外的未定义

时间:2016-05-10 05:04:09

标签: node.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
Hello World来自msg.js
未定义

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

2 个答案:

答案 0 :(得分:1)

由于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());

答案 1 :(得分:0)

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

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

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