2
respostas

Nomeando a função

Olá,

Considerando o arquivo express.js que foi criado com um módulo que se responsabiliza pelo setup do express, eu atribui um nome a função (function configuraExpress()), conforme abaixo:

var app = require('express')();
app.set('view engine','ejs');

module.exports = function configuraExpress() {
    return app;
}

Como eu faço para utilizar o require explicitando o nome da função, ao invés de fazer como abaixo:

var app = require('./config/express')();

PS: dessa forma funcionou, ou seja, nomeando a função, mas sem utilizar esse nome no require. Entretanto, fiquei curioso para saber como fazer funcionar utilizando o nome da função.

Muito obrigado!

Abraços,

2 respostas

Opa, vc não vai conseguir :). O require já retorna para vc a referência para sua função com nome, inclusive se vc fizer assim:

var app = require('./config/express');
console.log(app);

Vai aparecer o nome da função que vc exportou.. mas aí ela já ta referenciada pela variável app, basta que vc use os () para invocar.

Olá,

Obrigado pelo retorno.

Nesse caso, é requisito que eu tenha apenas um module.exports dentro do arquivo? Por exemplo:

var app = require('express')();
module.exports = function configViewEngine() {
    app.set('view engine','ejs');
    return app;
}
// Exemplo hipotético
module.exports = function configOtherEngine() {
    app.set('other engine','other');
    return app;
}

Pergunta 1: isso é possível? Ou seja, ter mais de um module.exports?

Pergunta 2: se é possível, como faria para diferenciar configViewEngine() de configOtherEngine()? Seria algo assim?

var app = require('./config/express');

app.configViewEngine();
app.configOtherEngine();
....

Espero que tenha conseguido explicar diretinho minha dúvida.

Obrigado !