Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

What is the syntax to export a function from a module in Node.js?

What is the syntax to export a function from a module in Node.js?

function foo() {}
function bar() {}

export foo; // I don't think this is valid?
export default bar;
like image 334
Ben Aston Avatar asked Jul 18 '17 16:07

Ben Aston


Video Answer


1 Answers

In Node you export things with module.exports special object. For example:

This exports both functions:

module.exports = { foo, bar };

They can be used as:

const { foo, bar } = require('./module/path');

To export one of those functions as top-level object you can use:

module.exports = foo;
module.exports.bar = bar;

which can be used as:

const foo = require('./module/path');

and:

const { bar } = require('./module/path');

or:

const foo = require('./module/path');
const { bar } = foo;

or:

const foo = require('./module/path');
const bar = foo.bar;

etc.

This is "the syntax to export a function from a module in Node.js" as asked in the question - i.e. the syntax that is natively supported by Node. Node doesn't support import/export syntax (see this to know why). As slezica pointed put in the comments below you can use a transpiler like Babel to convert the import/export keywords to syntax understood by Node.

See those answers for more info:

  • Is it ok to use Babel npm package for node.js server application
  • javascript - Why is there a spec for sync and async modules?
like image 87
rsp Avatar answered Sep 28 '22 08:09

rsp