Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

120
Views
Function in module.exports "is not a function"? - nodejs

I'm trying to use badPort function inside another function (getPort) in module.exports like so:

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;
                },
};     

However, when I use this.badPort(c_port) it throws an exception:

TypeError: this.badPort is not a function

But it's clearly a function as initialised right above it.

If however I take out the (), this.badPort always returns undefined.

Why is this happening and how would I be able to correctly use the function inside module.exports? Is it possible to also declare the "Global variable" DEFAULT_PORT in module.exports this way?

about 4 years ago · Juan Pablo Isaza
3 answers
Answer question

0

You can do it, by changing this to 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;
                },
};

And about second question... you would have to redefine your module, to use that variable externally, like this:

module.exports.DEFAULT_PORT = 80;

Then you will have access to it:

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

I am not aware of any other way.

about 4 years ago · Juan Pablo Isaza Report

0

Have you try this to change ":" by "=" like:

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 Report

0

To reference badPort from the other function you can write it this way:

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
};     

And if you're curious on how to import it correctly, here is an example of a correct import from another js file in the same directory:

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

And your default port can be an environment variable using process.env https://nodejs.org/dist/latest-v8.x/docs/api/process.html

about 4 years ago · Juan Pablo Isaza Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!