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

124
Vistas
¿La función en module.exports "no es una función"? - nodos

Estoy tratando de usar la función badPort dentro de otra función ( getPort ) en module.exports así:

 DEFAULT_PORT = 80; module.exports = { badPort: (c_port, min=80, max=90) => { return isNaN(c_port) || !between(c_port, min, max); }, getPort: (c_port, min=80, max=90) => { console.log(this.badPort(c_port)); return this.badPort(c_port) ? 80 : c_port; }, };

Sin embargo, cuando uso this.badPort(c_port) arroja una excepción:

 TypeError: this.badPort is not a function

Pero es claramente una función como se inicializó justo encima de ella.

Sin embargo, si elimino () , this.badPort siempre devuelve undefined .

¿Por qué sucede esto y cómo podría usar correctamente la función dentro module.exports ? ¿Es posible declarar también la "variable global" DEFAULT_PORT en module.exports de esta manera?

about 4 years ago · Juan Pablo Isaza
3 Respuestas
Responde la pregunta

0

Puedes hacerlo cambiando this a module.exports :

 DEFAULT_PORT = 80; module.exports = { badPort: (c_port, min=80, max=90) => { return isNaN(c_port) || !between(c_port, min, max); }, getPort: (c_port, min=80, max=90) => { console.log(module.exports.badPort(c_port)); return module.exports.badPort(c_port) ? 80 : c_port; }, };

Y sobre la segunda pregunta... tendrías que redefinir tu módulo, para usar esa variable externamente, así:

 module.exports.DEFAULT_PORT = 80;

Entonces tendrás acceso a él:

 var mod = require('mymodule'); console.log(mod.DEFAULT_PORT);

No estoy al tanto de ninguna otra manera.

about 4 years ago · Juan Pablo Isaza Denunciar

0

¿Has probado esto para cambiar ":" por "=" como:

 DEFAULT_PORT = 80; module.exports = { badPort = (c_port, min=80, max=90) => { return isNaN(c_port) || !between(c_port, min, max); }, getPort = (c_port, min=80, max=90) => { console.log(this.badPort(c_port)); return this.badPort(c_port) ? 80 : c_port; }, };
about 4 years ago · Juan Pablo Isaza Denunciar

0

Para hacer referencia a badPort desde la otra función, puede escribirlo de esta manera:

 DEFAULT_PORT = 80; const badPort = (c_port, min=80, max=90) => { return isNaN(c_port) || !between(c_port, min, max); }; const getPort = (c_port, min=80, max=90) => { console.log(badPort(c_port)); return badPort(c_port) ? 80 : c_port; }; module.exports = { badPort, getPort };

Y si tiene curiosidad sobre cómo importarlo correctamente, aquí hay un ejemplo de una importación correcta desde otro archivo js en el mismo directorio:

 const port = require('./port.js'); console.log(port.badPort(1000));

Y su puerto predeterminado puede ser una variable de entorno usando process.env https://nodejs.org/dist/latest-v8.x/docs/api/process.html

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