3

I am trying to create some dummy function in nodejs and trying to export it in another file but when I am running it using node index.js it might some sort of silly mistake but its showing error that:

TypeError: spr.comb is not a function

Below is my code:

spread.js

const comb = () => {
   const arr = [4,5,6];
   const newArr = [1,2,3,...arr];
   console.log(newArr);
}

module.exports = comb;

index.js

const spr =  require('./spread');
spr.comb();  

Someone let me know what I am doing wrong.

1
  • I dont think spr.comb() is right. the spr has the comb reference. just do spr() Commented Sep 2, 2021 at 5:05

4 Answers 4

3

Problem is that you have completely overwritten the module.exports object.

module.exports is an empty object to which you can add the values to export from a module.

In your case, you have re-assigned the module.exports to comb function. So, to call the function, change

spr.comb(); 

to

spr(); 

For spr.comb() to work, you need to export the comb function as shown below:

module.exports.comb = comb;

or

exports.comb = { ... }
Sign up to request clarification or add additional context in comments.

Comments

1

you can do it like this(in spread.js):

const comb = module.exports.comb = () => {
const arr = [4, 5, 6];
const newArr = [1, 2, 3, ...arr];
console.log(newArr);
}

Comments

1

Can't use a user defined name here because you have exported comb from your spread file

const spr =  require('./spread'); 
spr.comb();

Use this instead

const comb = require('./spread');

If you want to use custom name you need to modify your spread file like this

module.exports = () => {
   const arr = [4,5,6];
   const newArr = [1,2,3,...arr];
   console.log(newArr);
}

Now you are exporting a function from spread, while importing/ including it in index.js you can provide a custom name to this function.

const {custom name comes here}=  require('./spread');

For Example

const comb = require('./spread');
const myCombFn = require('./spread');

Comments

0

If the function is not a default export you would need to surround it with curly braces in your main file like so:

const {spr} =  require('./spread');
spr.comb(); 

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.