const express = require('express')
const app = express()
const port = 3000
app.get('/', (req, res) => {
res.send('Hello World!')
})
app.listen(port, () => {
console.log(`Example app listening on port ${port}`)
})coding with ☕️ pinned «const express = require('express') const app = express() const port = 3000 app.get('/', (req, res) => { res.send('Hello World!') }) app.listen(port, () => { console.log(`Example app listening on port ${port}`) })»
express -h
Usage: express [options] [dir]
Options:
-h, --help output usage information
--version output the version number
-e, --ejs add ejs engine support
--hbs add handlebars engine support
--pug add pug engine support
-H, --hogan add hogan.js engine support
--no-view generate without view engine
-v, --view <engine> add view <engine> support (ejs|hbs|hjs|jade|pug|twig|vash) (defaults to jade)
-c, --css <engine> add stylesheet <engine> support (less|stylus|compass|sass) (defaults to plain css)
--git add .gitignore
-f, --force force on non-empty directory
Usage: express [options] [dir]
Options:
-h, --help output usage information
--version output the version number
-e, --ejs add ejs engine support
--hbs add handlebars engine support
--pug add pug engine support
-H, --hogan add hogan.js engine support
--no-view generate without view engine
-v, --view <engine> add view <engine> support (ejs|hbs|hjs|jade|pug|twig|vash) (defaults to jade)
-c, --css <engine> add stylesheet <engine> support (less|stylus|compass|sass) (defaults to plain css)
--git add .gitignore
-f, --force force on non-empty directory
express --view=pug myapp
create : myapp
create : myapp/package.json
create : myapp/app.js
create : myapp/public
create : myapp/public/javascripts
create : myapp/public/images
create : myapp/routes
create : myapp/routes/index.js
create : myapp/routes/users.js
create : myapp/public/stylesheets
create : myapp/public/stylesheets/style.css
create : myapp/views
create : myapp/views/index.pug
create : myapp/views/layout.pug
create : myapp/views/error.pug
create : myapp/bin
create : myapp/bin/www
create : myapp
create : myapp/package.json
create : myapp/app.js
create : myapp/public
create : myapp/public/javascripts
create : myapp/public/images
create : myapp/routes
create : myapp/routes/index.js
create : myapp/routes/users.js
create : myapp/public/stylesheets
create : myapp/public/stylesheets/style.css
create : myapp/views
create : myapp/views/index.pug
create : myapp/views/layout.pug
create : myapp/views/error.pug
create : myapp/bin
create : myapp/bin/www
Node.js + Express.js RESTful API Development Roadmap & Guide
✅ 1. Tushuncha: RESTful API nima?REST (Representational State Transfer) bu arxitektura uslubi bo‘lib, HTTP orqali ma’lumotlarga kirishish uchun ishlatiladi. RESTful API - bu shu printsiplarga asoslangan API.
Asosiy HTTP metodlari:
GET — ma'lumot olish.
POST — yangi ma'lumot yaratish.
PUT/PATCH — mavjud ma'lumotni yangilash.
DELETE — ma'lumotni o‘chirish.
✅ 2. Kerakli vositalarNode.js
Express.js
VS Code / IDE
Postman (API test qilish uchun)
✅ 3. Loyihani boshlashmkdir books-api
module.exports = router;✅ 5. API test qilishPostman orqali quyidagilarni sinab ko‘ring:
GET /api/books - barcha kitoblar.
GET /api/books/:id - bitta kitob.
POST /api/books - yangi kitob.
DELETE /api/books/:id - kitobni o‘chirish.
✅ 6. Qo‘shimcha takliflar:Joi bilan validatsiya: npm install joi
nodemon bilan hot reload: npm install --save-dev nodemon
.env bilan konfiguratsiya
✅ 7. Deployment (keyinchalik):Railway, Render, Cyclic, yoki Vercel (serverless)
.env fayl va process.env.PORT
✅ 8. XulosaNode.js va Express.js orqali RESTful API yaratish oddiy, lekin muhim tushunchalarni o'z ichiga oladi. Har bir HTTP metodga mos marshrut, kontroller, va model orqali ishlash sizga real loyihalarda mustahkam asos yaratadi.
Tayyorlovchi: Fotima Nishonova
GitHub: github.com/fotimaDev
LinkedIn: linkedin.com/in/fotima-nishonova
✅ 1. Tushuncha: RESTful API nima?REST (Representational State Transfer) bu arxitektura uslubi bo‘lib, HTTP orqali ma’lumotlarga kirishish uchun ishlatiladi. RESTful API - bu shu printsiplarga asoslangan API.
Asosiy HTTP metodlari:
GET — ma'lumot olish.
POST — yangi ma'lumot yaratish.
PUT/PATCH — mavjud ma'lumotni yangilash.
DELETE — ma'lumotni o‘chirish.
✅ 2. Kerakli vositalarNode.js
Express.js
VS Code / IDE
Postman (API test qilish uchun)
✅ 3. Loyihani boshlashmkdir books-api
cd books-api
npm init -y
npm install expressLoyiha strukturasini yarating:
books-api/
|-- index.js
|-- routes/
| |-- books.js
|-- controllers/
| |-- bookController.js
|-- models/
| |-- book.js✅ 4. Kod yozish4.1 index.js (asosiy fayl):const express = require('express');
const app = express();
const bookRoutes = require('./routes/books');
app.use(express.json());
app.use('/api/books', bookRoutes);
app.listen(3000, () => {
console.log('Server running on port 3000');
});4.2 models/book.jslet books = [
{ id: 1, title: 'Clean Code', author: 'Robert C. Martin' },
];
module.exports = books;4.3 controllers/bookController.jsconst books = require('../models/book');
exports.getBooks = (req, res) => {
res.json(books);
};
exports.getBookById = (req, res) => {
const book = books.find(b => b.id === parseInt(req.params.id));
if (!book) return res.status(404).send('Book not found');
res.json(book);
};
exports.createBook = (req, res) => {
const newBook = {
id: books.length + 1,
title: req.body.title,
author: req.body.author,
};
books.push(newBook);
res.status(201).json(newBook);
};
exports.deleteBook = (req, res) => {
const index = books.findIndex(b => b.id === parseInt(req.params.id));
if (index === -1) return res.status(404).send('Book not found');
const deleted = books.splice(index, 1);
res.json(deleted);
};4.4 routes/books.jsconst express = require('express');
const router = express.Router();
const bookController = require('../controllers/bookController');
router.get('/', bookController.getBooks);
router.get('/:id', bookController.getBookById);
router.post('/', bookController.createBook);
router.delete('/:id', bookController.deleteBook);
module.exports = router;✅ 5. API test qilishPostman orqali quyidagilarni sinab ko‘ring:
GET /api/books - barcha kitoblar.
GET /api/books/:id - bitta kitob.
POST /api/books - yangi kitob.
DELETE /api/books/:id - kitobni o‘chirish.
✅ 6. Qo‘shimcha takliflar:Joi bilan validatsiya: npm install joi
nodemon bilan hot reload: npm install --save-dev nodemon
.env bilan konfiguratsiya
✅ 7. Deployment (keyinchalik):Railway, Render, Cyclic, yoki Vercel (serverless)
.env fayl va process.env.PORT
✅ 8. XulosaNode.js va Express.js orqali RESTful API yaratish oddiy, lekin muhim tushunchalarni o'z ichiga oladi. Har bir HTTP metodga mos marshrut, kontroller, va model orqali ishlash sizga real loyihalarda mustahkam asos yaratadi.
Tayyorlovchi: Fotima Nishonova
GitHub: github.com/fotimaDev
LinkedIn: linkedin.com/in/fotima-nishonova
GitHub
fotimaDev - Overview
Software Engineer / Project Manager
Teesside University of UK at MDIST - fotimaDev
Teesside University of UK at MDIST - fotimaDev