FAQ: Intermediate JavaScript Modules - export default

This community-built FAQ covers the “export default” exercise from the lesson “Intermediate JavaScript Modules”.

Paths and Courses
This exercise can be found in the following Codecademy content:

Web Development

Introduction To JavaScript

FAQs on the exercise export default

Join the Discussion. Help a fellow learner on their journey.

Ask or answer a question about this exercise by clicking reply (reply) below!

Agree with a comment or answer? Like (like) to up-vote the contribution!

Need broader help or resources? Head here.

Looking for motivation to keep learning? Join our wider discussions.

Learn more about how to use this guide.

Found a bug? Report it!

Have a question about your account or billing? Reach out to our customer support team!

None of the above? Find out where to ask other questions here!

let Airplane = {};

Airplane.availableAirplanes = [
{
name: ‘AeroJet’,
fuelCapacity: 800
},
{name: ‘SkyJet’,
fuelCapacity: 500
}
];

export default Airplane;

Why does the curly brackets in Airplane = {} not encompass all lines? The object appears to be empty?

Best regards,
Tomas

4 Likes

For those of you following along in your own ecosystem using Node JS: You’re not crazy, Node currently doesn’t support the export default / import syntax for modules. It seems to work fine with almost all other ES6 syntax, just not this. So if you’re trying to implement something server side using Node, you’ll have to either transpile back to ES5 or use the ES5 module.exports / require() for module sharing.
for more:

2 Likes

what is wrong here? I did everything it said and it still wont let me move to the next exercise…

1 Like

GOT IT NOW
All along the problem was that skyJet should be Skyjet… capital letter needed ughhh

Can somebody tell me why, if I try to assign a value to the objects, only the first one fails to be identified as such?

Airplane.availableAirplanes= [let object1={
                              name: "SkyJet",
                              fuelCapacity: 500,
                              },
                              let object2={
                              name: "AeroJet",
                              fuelCapacity: 800,
                              }];

If I change the code to not assign a variable to first object, the second one is then not an object:

Airplane.availableAirplanes= [{name: "SkyJet",
                              fuelCapacitator: 500,
                              },
                              let object1={
                              name: "Aerojet",
                              fuelCapacitator: 800,
                              }];

Thank you~

Hey there!
I am working on the Intermediate export modules.Could you please elaborate on this part of the instruction ?
" When using ES6 syntax, we use export default in place of module.exports . Node.js doesn’t support export default by default, so module.exports is usually used for Node.js development and ES6 syntax is used for front-end development"

What is reference to Node.js, and EC6 and how are these connected ?

Is is allowed to define the properties of an object/module inside the object? Like this:

let Airplane = {
availableAirplanes: [
{name: ‘AeroJet’, fuelCapacity: 800},
{name: ‘SkyJet’, fuelCapacity: 500}
]
};

export default Airplane;

Of course it is allowed

I came here to figure this out too! thankyou!

Can someone explain how ‘export default’ and syntax that can export modules does not need you to tell it where to export to? Is a new file created, or some default file?
Thanks

Yes. I coded this in the same format as you did. I did not realize there was a different way to code this until I saw the “Hints”. I’m glad I wasn’t alone coding in this method.

It just allows it to be exported, so you don’t have to tell it where to. When you go to import it elsewhere you have to specify where you’re importing from.

Ok that makes sense. Thank you for the answer.

but how come the curly brackets are empty in the exemples?
let Airplane = {};
availableAirplanes:;

??

I answer to my own question because I understood we added a new property after and it’s part of the NEsted objects lessons :smiley:
It’s seems so far away right now !