Node.jsAdvanced
Real-world Node.js Projects
Blog API, Chat App, File Upload — বাস্তব world-এর Node.js project examples বাংলায়।
7টি অংশবাংলা ভাষায়
Project 1: Blog API
Full Blog API with Authjavascript
javascript
const express = require("express");
const mongoose = require("mongoose");
const bcrypt = require("bcryptjs");
const jwt = require("jsonwebtoken");
const app = express();
app.use(express.json());
// Connect MongoDB
mongoose.connect("mongodb://localhost:27017/blog");
// Schema
const postSchema = new mongoose.Schema({
title: String,
content: String,
author: { type: mongoose.Schema.Types.ObjectId, ref: "User" },
});
const Post = mongoose.model("Post", postSchema);
// Routes
app.get("/api/posts", async (req, res) => {
const posts = await Post.find().populate("author", "name");
res.json(posts);
});
app.post("/api/posts", authenticate, async (req, res) => {
const post = await Post.create({
...req.body,
author: req.user.id,
});
res.status(201).json(post);
});
app.listen(3000);Project 2: Real-time Chat
Chat with Socket.IOjavascript
javascript
const express = require("express");
const http = require("node:http");
const { Server } = require("socket.io");
const app = express();
const server = http.createServer(app);
const io = new Server(server);
io.on("connection", (socket) => {
console.log("User connected:", socket.id);
socket.on("chat-message", (msg) => {
io.emit("chat-message", msg); // broadcast
});
socket.on("disconnect", () => {
console.log("User disconnected:", socket.id);
});
});
server.listen(3000);Project 3: File Upload API
Multer file uploadjavascript
javascript
const express = require("express");
const multer = require("multer");
const path = require("node:path");
const app = express();
// storage config
const storage = multer.diskStorage({
destination: "uploads/",
filename: (req, file, cb) => {
const unique = Date.now() + path.extname(file.originalname);
cb(null, unique);
},
});
const upload = multer({
storage,
limits: { fileSize: 5 * 1024 * 1024 }, // 5MB
fileFilter: (req, file, cb) => {
const allowed = /jpeg|jpg|png|gif/;
const ext = allowed.test(path.extname(file.originalname));
cb(null, ext);
},
});
app.post("/upload", upload.single("image"), (req, res) => {
res.json({ file: req.file });
});
app.listen(3000);পরামর্শ
এই projectsগুলো নিজে বানিয়ে দেখুন। প্রতিটিতে নতুন কিছু শেখার সুযোগ আছে। GitHub-এ push করুন যাতে portfolio strong হয়।
শেষ প্যারায় নিজে practice করুন — কোড কপি করে নিজের এডিটরে চালিয়ে দেখুন।