Jump into concepts and practice - no test required
or
Recommended
Test this pattern10 questions across easy, medium, and hard to know if this pattern is strong
ES Modules import and export
📖 Scenario: You are building a small Node.js project that uses ES Modules to organize code. You want to split your code into two files: one for utility functions and one for the main program.
🎯 Goal: Create a module file that exports a function, then import and use that function in the main file using ES Modules syntax.
📋 What You'll Learn
Create a file utils.js that exports a function called greet
The greet function takes a name parameter and returns a greeting string
Create a file main.js that imports the greet function from utils.js
Call the greet function in main.js with the argument 'Alice'
💡 Why This Matters
🌍 Real World
Organizing code into modules helps keep projects clean and reusable. ES Modules are the standard way to share code in modern JavaScript and Node.js.
💼 Career
Understanding ES Modules is essential for JavaScript developers working on scalable applications, libraries, or any code that benefits from modular design.
Progress0 / 4 steps
1
Create the utils module with a greet function
Create a file called utils.js and write a function named greet that takes a parameter name and returns the string `Hello, ${name}!`. Export this function using export function greet(name) syntax.
Node.js
Hint
Use export function greet(name) { ... } to export the function directly.
2
Create the main file and import greet
Create a file called main.js. Import the greet function from ./utils.js using import { greet } from './utils.js' syntax.
Node.js
Hint
Use import { greet } from './utils.js'; to import the function.
3
Call the greet function with 'Alice'
In main.js, call the imported greet function with the argument 'Alice' and assign the result to a variable named message.
Node.js
Hint
Use const message = greet('Alice'); to call the function and store the result.
4
Export the message variable from main.js
In main.js, export the variable message using export { message } syntax so it can be used by other modules.
Node.js
Hint
Use export { message }; to export the variable.
Practice
(1/5)
1. What is the main purpose of using export and import in Node.js ES Modules?
easy
A. To create new variables inside a file
B. To run JavaScript code faster in Node.js
C. To convert JavaScript code into another language
D. To share code between different files by exporting and importing parts
Solution
Step 1: Understand the role of export
The export keyword allows parts of a file (like functions or variables) to be shared with other files.
Step 2: Understand the role of import
The import keyword is used to bring those shared parts into another file to use them.
Final Answer:
To share code between different files by exporting and importing parts -> Option D
Quick Check:
Export and import = share code [OK]
Hint: Export shares code, import uses it elsewhere [OK]
Common Mistakes:
Thinking export/import changes code speed
Confusing export with variable creation
Believing export/import converts languages
2. Which of the following is the correct syntax to export a function named greet in an ES Module file?
easy
A. export function greet() {}
B. module.exports = greet;
C. export = greet;
D. exports.greet = function() {}
Solution
Step 1: Identify ES Module export syntax
In ES Modules, use export function functionName() {} to export a function.
Step 2: Check other options for CommonJS syntax
Options B and D use CommonJS style, not ES Modules. export = greet; is invalid syntax.
Final Answer:
export function greet() {} -> Option A
Quick Check:
ES Modules export function = export function [OK]
Hint: Use 'export function' for ES Modules exports [OK]
Common Mistakes:
Using CommonJS syntax in ES Modules
Writing invalid export syntax
Confusing export default with named export
3. Given the following files, what will be logged when running node main.js?
// utils.js export const value = 5; export function double(x) { return x * 2; }
// main.js import { value, double } from './utils.js'; console.log(double(value));
medium
A. 10
B. 5
C. undefined
D. SyntaxError
Solution
Step 1: Understand the imports and exports
The file utils.js exports a constant value = 5 and a function double that multiplies input by 2.
Step 2: Trace the code in main.js
It imports value and double, then calls double(value) which is double(5), returning 10.
Final Answer:
10 -> Option A
Quick Check:
double(5) = 10 [OK]
Hint: Import exports correctly, then call functions with values [OK]
Common Mistakes:
Forgetting to add .js extension in import
Confusing export default with named exports
Expecting value instead of double(value)
4. What is the error in the following code snippet?
// math.js export function add(a, b) { return a + b; }
// app.js import { add } from './math'; console.log(add(2, 3));
medium
A. Function add is not exported correctly
B. Cannot import named exports with curly braces
C. Missing file extension in import statement
D. Using CommonJS syntax in ES Modules
Solution
Step 1: Check import statement syntax
The import statement uses import { add } from './math'; but misses the .js extension required in Node.js ES Modules.
Step 2: Confirm export syntax is correct
The function add is correctly exported with export function add(), so no error there.
Final Answer:
Missing file extension in import statement -> Option C
Quick Check:
Node.js ES Modules need file extensions [OK]
Hint: Always include .js extension in ES Module imports [OK]