📖 Scenario: You are building a simple Express server for a small web app. To make development easier, you want the server to restart automatically whenever you change your code.
🎯 Goal: Set up a basic Express server and configure nodemon to reload the server automatically during development.
📋 What You'll Learn
Create a basic Express server in index.js that listens on port 3000
Add a start script in package.json to run the server with node
Add a dev script in package.json to run the server with nodemon
Install nodemon as a development dependency
💡 Why This Matters
🌍 Real World
Developers use nodemon to automatically restart their Node.js servers when they change code, saving time and avoiding manual restarts.
💼 Career
Knowing how to set up nodemon is a common skill for backend developers working with Node.js and Express to speed up development.
Progress0 / 4 steps
1
Create a basic Express server
Create a file called index.js. Inside it, write code to import express, create an app, and make it listen on port 3000. Use console.log to print 'Server running on port 3000' when it starts.
Express
Hint
Use import express from 'express' to import Express. Then create app by calling express(). Use app.listen(3000, ...) to start the server.
2
Add a start script in package.json
In package.json, add a start script that runs node index.js to start the server normally.
Express
Hint
Inside the scripts object, add a line: "start": "node index.js".
3
Add a dev script to run nodemon
In package.json, add a dev script that runs nodemon index.js to start the server with automatic reload on code changes.
Express
Hint
Inside the scripts object, add a line: "dev": "nodemon index.js".
4
Install nodemon as a development dependency
Run the command npm install --save-dev nodemon in your terminal to install nodemon as a development dependency.
Express
Hint
Open your terminal and type exactly npm install --save-dev nodemon to install nodemon.
Practice
(1/5)
1. What is the main purpose of using nodemon in an Express development environment?
easy
A. To create a database connection automatically
B. To minify JavaScript files for production
C. To deploy the Express app to a cloud server
D. To automatically restart the server when code changes are detected
Solution
Step 1: Understand what nodemon does
Nodemon watches your Node.js files and restarts the server automatically when it detects changes.
Step 2: Compare options with nodemon's purpose
Options B, C, and D describe tasks unrelated to nodemon's automatic restart feature.
Final Answer:
To automatically restart the server when code changes are detected -> Option D
Quick Check:
Nodemon = auto-restart server on changes [OK]
Hint: Nodemon restarts server automatically on file changes [OK]
Common Mistakes:
Thinking nodemon deploys the app
Confusing nodemon with build tools
Assuming nodemon manages databases
2. Which command correctly starts an Express app using nodemon for automatic reloading?
easy
A. node nodemon app.js
B. nodemon app.js
C. nodemon start app.js
D. start nodemon app.js
Solution
Step 1: Recall the correct nodemon command syntax
The correct way to start nodemon is by running nodemon followed by the file name, e.g., nodemon app.js.
Step 2: Check each option's syntax
node nodemon app.js incorrectly prefixes with node. nodemon start app.js adds an invalid start keyword. start nodemon app.js reverses the order incorrectly.
Final Answer:
nodemon app.js -> Option B
Quick Check:
Correct nodemon command = nodemon filename [OK]
Hint: Use 'nodemon filename.js' to start with auto-reload [OK]
Common Mistakes:
Adding 'node' before nodemon
Using extra keywords like 'start'
Swapping command order
3. Given the following command run in terminal: nodemon server.js, what happens when you save changes to server.js?
medium
A. The server automatically restarts to apply the changes
B. The server crashes and needs manual restart
C. Nothing happens until you manually restart the server
D. Nodemon deletes the server.js file
Solution
Step 1: Understand nodemon's behavior on file changes
Nodemon watches the specified file and restarts the Node.js server automatically when it detects a save or change.
Step 2: Analyze the options
The server automatically restarts to apply the changes correctly describes the automatic restart. Options A and B describe manual intervention or crashing, which nodemon prevents. Nodemon deletes the server.js file is incorrect and harmful.
Final Answer:
The server automatically restarts to apply the changes -> Option A
Quick Check:
Save file triggers auto-restart = nodemon feature [OK]
4. You run nodemon app.js but the server does not restart after you save changes. What is the most likely cause?
medium
A. All of the above
B. Nodemon is not installed globally or locally
C. The app.js file has syntax errors preventing restart
D. You forgot to save the file after editing
Solution
Step 1: Check nodemon installation
If nodemon is not installed, the command won't work properly, so no restart happens.
Step 2: Verify file saving and syntax
If the file is not saved, nodemon won't detect changes. Syntax errors can cause the server to crash and fail to restart.
Step 3: Combine all causes
All these issues can prevent nodemon from restarting the server automatically.
Final Answer:
All of the above -> Option A
Quick Check:
Installation, saving, syntax errors all affect nodemon restart [OK]
Hint: Check install, save file, and syntax if nodemon won't restart [OK]
Common Mistakes:
Ignoring nodemon installation status
Assuming nodemon restarts without saving
Overlooking syntax errors blocking restart
5. You want nodemon to watch both server.js and all files in the routes folder for changes. Which command correctly achieves this?
hard
A. nodemon --watch server.js routes
B. nodemon server.js routes
C. nodemon --watch server.js --watch routes server.js
D. nodemon --watch server.js --watch routes/
Solution
Step 1: Understand nodemon's --watch option
The --watch flag tells nodemon which files or folders to monitor for changes.
Step 2: Analyze the options
nodemon --watch server.js --watch routes server.js correctly uses multiple --watch flags to monitor both and specifies server.js as the script (trailing slash on folders optional). nodemon server.js routes passes extra arguments incorrectly. nodemon --watch server.js routes misses --watch for the folder. nodemon --watch server.js --watch routes/ misses the entry script to execute.
Final Answer:
nodemon --watch server.js --watch routes server.js -> Option C
Quick Check:
Use multiple --watch flags followed by script [OK]
Hint: Use multiple --watch flags followed by the entry script [OK]
Common Mistakes:
Passing folder without --watch
Omitting the entry script
Adding extra arguments after filename
Recommended
Ready to prove it?
Pass the test and this pattern moves unknownstrongwhile earning +1 Grip toward your certificate.