Nick
Nick

Reputation: 771

TypeError, is not a function error in NodejS

I have a class that contains few functions, putting one of then below,

const _ = require("lodash");
const ObjectId = require("mongoose").Types.ObjectId;
const mockLookUps = require(“../../data”).mockLookUps;

class XYZ {
   // ...... Other functions
   async getData() {
    return Promise.resolve(mockLookUps); // JSON Object
  }
}

module.exports = XYZ;

if I import that in other class like below,

const x = await XYZ.getData();

It is throwing me some is not a function error like this,

XYZ.getData is not a function

What is the mistake I'm making?

Upvotes: 1

Views: 1973

Answers (2)

axel
axel

Reputation: 4127

const xyz = new XYZ()
const data = await xyz.getData()

Could work

Upvotes: 1

Ihar Dziamidau
Ihar Dziamidau

Reputation: 347

1. You have to create a class instance first to call instance methods.

try this:

const xyz = new XYZ();
const result = await xyz.getData();

2. For your case try to make it static:

class XYZ {
   // ...... Other functions
   static async getData() {
    return Promise.resolve(mockLookUps); // JSON Object
  }
}

module.exports = XYZ;

and then you can use so:

const x = await XYZ.getData();

Upvotes: 0

Related Questions