Diferença entre module.exports x exports ?

771 views
Skip to first unread message

Welington Monteiro

unread,
Jul 26, 2013, 4:05:42 PM7/26/13
to nod...@googlegroups.com
Ola pessoal estou com uma dúvida, gostaria de saber qual a diferença entre eu usar o comando

module.exports ou exports 

qual a diferença? um inicializa o conteudo e outro apenas le??
Alguem poderia me explicar isso???

Caio Ribeiro Pereira

unread,
Jul 29, 2013, 3:18:05 PM7/29/13
to nod...@googlegroups.com
Wellington espero que essa dica te ajude!

module.exports retorna um módulo com apenas uma função.

exports retorna um objeto com a possibilidade de ter diversas funções nele.

exemplo:

--------------------------------
// funcao_log.js
module.exports = function(msg) {
    console.log(msg);
}

--------------------------------
// objeto.js
exports.log = function(msg) {
    console.log(msg);
}

--------------------------------
// app.js
var funcao_log = require('./funcao_log');
var objeto = require('./objeto');

funcao_log("teste"); // É executado uma função modular.

objeto.log("teste"); // É executado uma função do objeto (conhecido também como método)

Att, 
Caio Ribeiro Pereira
Web Developer
--
Você está recebendo esta mensagem porque se inscreveu no grupo "NodeJS Brasil" dos Grupos do Google.
Para cancelar a inscrição neste grupo e parar de receber seus e-mails, envie um e-mail para nodebr+un...@googlegroups.com.
Para obter mais opções, acesse https://groups.google.com/groups/opt_out.
 
 

diego nunes

unread,
Jul 29, 2013, 7:11:44 PM7/29/13
to nod...@googlegroups.com
Caio, acho que você se confundiu.
A variável "exports" na verdade aponta para o "module.exports".
Não há absolutamente nenhuma diferença, inicialmente, nos dois, exceto
o que é intrínseco à diferença entre um objeto e uma referência a ele.
Caso você redefina a variável "exports" ela naturalmente perde
essa ligação, então ela só é adequada para "augmentation"
("exports.foo = bar" e não "exports = baz").
Usar "exports.funcao = function () {}" ou "module.exports.funcao =
function () {}" é exatamente a mesma coisa.

Referências: <http://nodejs.org/api/globals.html#globals_exports>
e <http://nodejs.org/api/modules.html#modules_module_exports>.

Abraços.

2013/7/29 Caio Ribeiro Pereira <caio.ribei...@gmail.com>:
--
diego nunes
dnunes.com

Rafael Henrique Moreira

unread,
Jul 30, 2013, 11:39:48 AM7/30/13
to nod...@googlegroups.com
Isso exports é apenas uma referência para module.exports, sendo que para você exportar apenas um objeto - ou um construtor, você deve utilizar a variável module.exports, e naturalmente você não poderá mais usar a referência exports.

Espero ter sido claro Welington, eu li seu email e o post que você me pediu está quase saindo, ele tá bem grandinho porque eu estou tentando pegar todos os principais conceitos de módulos e deixar tudo em um lugar só, possivelmente hoje ou amanhã eu concluo e te retorno o email.

desculpa a demora, essa universidade ainda me mata!
RafaDev

Welington Monteiro

unread,
Jul 31, 2013, 2:15:15 PM7/31/13
to nod...@googlegroups.com
Opa, acho que entendi um pouco sim, é que sou novato com Node, javascript, eu programava em C#+Web Api, 
Agora mudamos a aplicação para Node + Mongoose e  estou tentando me adaptar a isso, ficarei no aguardo do post la no NodeBR ,

Abs galera....
Message has been deleted

Rafael Henrique Moreira

unread,
Aug 19, 2013, 10:02:18 PM8/19/13
to nod...@googlegroups.com
Opa Welington, aquele post de Módulos saiu bem completo, espero que você tenha todas suas dúvidas resolvidas, eu juntei 3 posts de comunidades em inglês e agrupei tudo neste post. Só peço desculpas pela demora pois eu estou um pouco preso ao meu TCC e o portal resolveu bugar justo este mês.


Obrigado a todos que apoiam e contribuem para este projeto, vamos fazer a comunidade brasileira de Node ainda maior!

RafaDev
Web developer

Welington Monteiro

unread,
Aug 20, 2013, 1:56:16 PM8/20/13
to nod...@googlegroups.com
Opa, eu vi ontem, vou ler hoje e te dou um feedback. valeu ai, acho que ira sanar varias duvidas de muita gente ai....


Abs
Reply all
Reply to author
Forward
0 new messages