节点导出模块未知控制台日志 "undefined"

node export module unknown console log "undefined"

所以我正在学习使用 node.js

导出模块

在test.js我有(test.js是写模块的地方)

var Library={
    name:"Timmy",
    greet:function(name){
        console.log("Hello from the "+ name);
    }
}
module.exports.Library=Library;

在 server.js 我有:

var test=require('./test.js'); 
console.log(test.Library.greet())

然后当我在终端中 运行 节点 server.js 时,它给出:

Hello from the Timmy library.
undefined

这个"undefined"是什么意思?出错了?

我在这里发现了类似的问题,但是这个例子太复杂了,我看不懂.. Node Module Export Returning Undefined

事情是这样的: server.js 文件中的控制台打印函数调用的 return。 现在,由于您的函数调用 (test.Library.greet()) 没有明确 return 任何内容,因此它 return undefined 隐含地。

这就是打印的内容。

我做了一些实验, 终于知道为什么 undefined 会出现了:

server.js中请分开这段代码

console.log(test.Library.greet())

var str = test.Library.greet();
console.log(str);

你就会知道 当你做 console.log("Hello from the "+ name) => 你会得到第一个输出行

Hello from the xxxx

但是因为你写的greet()没有return值
test.Library.greet() => 将得到 undefined

所以第二行:console.log(test.Library.greet()) 将是

undefined

有趣的问题:)