javascriptnode.jsexpressecmascript-6koa2

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?


Solution

  • 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