Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

551
Visualizações
Prueba de unidad de JavaScript Express 'TypeError: app.address no es una función'

Revisé otras respuestas como esta Prueba de la API de Mocha: obteniendo 'TypeError: app.address is not a function' y parece que el problema principal del error no es exportar el servidor, pero creo que lo estoy haciendo.

Aquí está mi archivo de prueba spec.js

 var request = require('supertest'); describe('loading express', function () { var server; beforeEach(function () { delete require.cache[require.resolve('./index')]; server = require('./index'); }); afterEach(function (done) { server.close(done); }); it('responds to /', function testSlash(done) { request(server) .get('/') .expect(200, done); });

Aquí está mi archivo index.js

 import bodyParser from "body-parser"; import cookieParser from "cookie-parser"; import cors from "cors"; import express from "express"; import _ from "lodash"; import serveStatic from "serve-static"; const port = 8000; export default (app) => { app.use(express.json({ limit: "50mb" })); app.use( express.urlencoded({ extended: true }) ); app.use(bodyParser.json({ limit: "50mb" })); app.use(cors()); app.use(serveStatic("dist/", { index: ["index.html"] })); app.use(cookieParser()); if (_.isNil(process.env.APP_ENV)) { process.env.APP_ENV = "LOCAL"; } // ... A load of variables and functions in here // simple function to test app.get('/', function (req, res) { res.status(200).send('ok'); }); var server = app.listen(port, function () { var port = server.address().port; console.log('Example app listening at port %s', port); }); module.exports = server; };
about 4 years ago · Juan Pablo Isaza
1 Respostas
Responde à pergunta

0

index.js está exportando una función que toma la app como argumento. Entonces, la importación de index.js es una función que debe llamarse con la app .

especificación.js

 server = require('./index'); // replace with server = require('./index')(app);

Asumiendo que esto permanece como una función, y lo llamas con app en spec.js , como arriba, entonces puedes obtener server reemplazando module.exports = server; con return server; .

prueba.js

 module.exports = server; // replace with return server;

Por separado, también hay una combinación de Módulos ES ( import/export ) y Módulos CommonJS ( module.exports/require ) que pueden dar como resultado una variedad de comportamientos extraños. Si puede estandarizar solo uno de estos, será de gran ayuda.

Pero si continúa usando require('./index') para importar index.js , que es un módulo ES, es posible que deba probar require('./index').default en su lugar, para obtener esa exportación default .

about 4 years ago · Juan Pablo Isaza Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda