Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

546
Vistas
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 Respuestas
Responde la pregunta

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 Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda