https://stackoverflow.com/questions/40294870/module-exports-vs-export-default-in-node-js-and-es6

module.exports vs. export default in Node.js and ES6

ES6 default exports are actually also named exports,
except that default is a "reserved" name and there is special syntax support for it. Lets have a look how Babel compiles named and default exports:

// input
export const foo = 42;
export default 21;
// output
"use strict";

Object.defineProperty(exports, "__esModule", {
value: true
});

var foo = exports.foo = 42;
exports.default = 21;

Here we can see that the default export becomes a property on the exports object, just like foo.

Import the module

We can import the module in two ways:
Either using CommonJS or using ES6 import syntax.

// input.js 
var bar = ...;

export default  bar;

So in order to access the default export we actually have to do:

var bar = require('./input').default;

console.log(bar);

If we use ES6 module syntax, namely:

import bar from './input';

console.log(bar);

Leave a Reply