Nodejs - how group and export multiple functions in a separate file?
Solution 1
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
Solution 2
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'
Solution 3
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();
Comments
-
Run almost 2 years
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?