Node Express Part1
by Kuligaposten 2026-02-16
A guide in Node Express backend.
Node.js Express App: A Step-by-Step Guide
Node.js and Express are a powerful combination for building fast, scalable, and lightweight web applications. Whether you're creating a simple API or a full-fledged web server, Express makes it straightforward to handle routes, middleware, and requests. In this guide, we’ll walk through setting up a Node.js Express app from scratch.
1. Prerequisites
Before you start, make sure you have the following installed:
- Node.js (v14+ recommended) – Download Node.js
- npm (comes with Node.js) or yarn for package management
- A code editor, like VS Code
You can check your Node.js and npm versions by running:
node -v
npm -v
2. Create Your Project Folder
Start by creating a folder for your project:
mkdir my-express-app
cd my-express-app
Initialize a new Node.js project:
npm init -y
This creates a package.json file, which will keep track of your dependencies and scripts.
3. Install Express
Next, install Express as a dependency:
npm install express
Optionally, install nodemon as a development dependency to automatically restart your server when files change:
npm install --save-dev nodemon
Update package.json to add a start script for nodemon:
"scripts": {
"start": "node index.js",
"dev": "nodemon index.js"
}
4. Create Your Entry File
Create an index.js file (or app.js) in your project root:
touch index.js
Open it in your editor and add the basic Express server code:
const express = require("express");
const app = express();
const PORT = process.env.PORT || 3000;
// Middleware to parse JSON
app.use(express.json());
// Basic route
app.get("/", (req, res) => {
res.send("Hello, Express!");
});
// Start the server
app.listen(PORT, () => {
console.log(`Server is running on http://localhost:${PORT}`);
});
5. Run Your Server
Start your server:
npm run dev
Open your browser and navigate to http://localhost:3000. You should see:
Hello, Express!
Congratulations! Your Express server is running.
6. Add More Routes
Express makes routing simple. Create additional routes:
app.get("/about", (req, res) => {
res.send("About Page");
});
app.post("/contact", (req, res) => {
const { name, message } = req.body;
res.send(`Thanks ${name}, your message has been received!`);
});
Test the POST route using tools like Postman or curl:
curl -X POST http://localhost:3000/contact -H "Content-Type: application/json" -d '{"name":"Alice","message":"Hello!"}'
7. Add Middleware
Middleware allows you to handle requests before they reach your routes. For example, a simple logger:
app.use((req, res, next) => {
console.log(`${req.method} ${req.url}`);
next();
});
You can also use third-party middleware:
npm install morgan
const morgan = require("morgan");
app.use(morgan("dev"));
8. Serve Static Files
Express can serve static files like HTML, CSS, or images:
app.use(express.static("public"));
Place your files in a public folder. Now you can visit them directly in your browser.
9. Organize Your Project
As your app grows, structure your project:
my-express-app/
│
├── public/ # Static files
├── routes/ # Route modules
├── middleware/ # Custom middleware
├── index.js # Entry point
└── package.json
Example of a route module in routes/users.js:
const express = require("express");
const router = express.Router();
router.get("/", (req, res) => {
res.send("Users list");
});
module.exports = router;
Then in index.js:
const usersRouter = require("./routes/users");
app.use("/users", usersRouter);
10. Next Steps
Once your basic app is up and running, you can explore:
- Connecting a database (MongoDB, PostgreSQL, MySQL)
- Using a template engine (EJS, Pug, Handlebars)
- Building a REST API with CRUD operations
- Deploying your app (Heroku, Vercel, DigitalOcean)
Conclusion
Setting up a Node.js Express app is quick and flexible. With just a few steps, you can have a fully functional server running locally. From there, Express gives you the freedom to scale your app, add features, and structure your project in a maintainable way.