Differenza tra “module.exports” e “exports” nel sistema di moduli CommonJs

In questa pagina ( http://docs.nodejitsu.com/articles/getting-started/what-is-require ), si afferma che “Se si desidera impostare l’object esportazioni su una funzione o un nuovo object, è necessario usa l’object module.exports. ”

La mia domanda è perché.

// right module.exports = function () { console.log("hello world") } // wrong exports = function () { console.log("hello world") } 

I console.loggato il risultato ( result=require(example.js) ) e il primo è [Function] il secondo è {} .

Potresti spiegare il motivo alla base di ciò? Ho letto il post qui: module.exports vs exports in Node.js. È utile, ma non spiega il motivo per cui è stato progettato in questo modo. Ci sarà un problema se il riferimento delle esportazioni sarà restituito direttamente?