Run
Run

Reputation: 57256

Nodejs - how group and export multiple functions in a separate file?

How can I group and export multiple functions in nodejs?

I am trying to group all my util functions in utils.js:

async function example1 () {
    return 'example 1'
}

async function example2 () {
    return 'example 2'
}

module.exports = { example1, example2 }

And then be imported in home.js:

  import { example1, example2 } from '../utils'

  router.get('/', async(ctx, next) => {
    console.log(example1()) // Promise { 'example 1' }

  })

I thought I would get 'example 1' for the test case above?

Any ideas?

Upvotes: 8

Views: 37916

Answers (3)

Pratul Kumar
Pratul Kumar

Reputation: 41

async function example1 () {
    return 'example 1'
}

async function example2 () {
    return 'example 2'
}

module.exports.example1 = example1;
module.exports.example2 = example2;

import in home.js like this:

const fun = require('./utils');
fun.example1();

Upvotes: 2

Hamzeen Hameem
Hamzeen Hameem

Reputation: 2560

Below I have shared a way to declare the exporting functions in 2 different ways. Hope it helps understand the different ways in which it could be solved.

"use strict";
// utils.js

const ex1 = function() {
  console.log('ex1');
};

function ex2(context) {
  console.log('ex2');
};

module.exports = { example1: ex1, example2: ex2 };

You could invoke them in another (external) JS file (ex: app.js) as follows:

// app.js
const utils = require('./utils');

utils.example1(); // logs 'ex1'
utils.example2(); // logs 'ex2'

Upvotes: 7

marpme
marpme

Reputation: 2435

This would be my solution for your exporting problem! And don't mix es5 exports with es6 imports, that can get very weird - sometimes!

export const example1 = async () => {
   return 'example 1'
}

export const example2 = async () => {
   return 'example 2'
}


// other file
import { example1, example2 } from '../../example'
return example1()

Nevertheless if you have to mix them, just let me know! We can find a solution for this aswell!


More about exporting modules and what can go wrong!

MDN Exports and the a short story about the state of javascript modules

Upvotes: 18

Related Questions