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

laukok picture laukok · Aug 20, 2017 · Viewed 29.6k times · Source

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?

Answer

marpme picture marpme · Aug 20, 2017

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