NestJSBeginner
NestJS Controllers
@Controller, HTTP methods, params, query, status codes — Request handling বাংলায়।
9টি অংশবাংলা ভাষায়
Controller হলো request গ্রহণ করে response ফেরত দেওয়ার জায়গা। এটি route ও HTTP method define করে।
Controller তৈরি
nest g controller userssrc/users/users.controller.tstypescript
typescript
import {
Controller,
Get,
Post,
Put,
Delete,
Param,
Query,
Body,
} from "@nestjs/common";
@Controller("users") // prefix → /users
export class UsersController {
@Get() // GET /users
findAll(@Query("page") page: number) {
return { data: [], page };
}
@Get(":id") // GET /users/:id
findOne(@Param("id") id: string) {
return { id };
}
@Post() // POST /users
create(@Body() body: any) {
return { ...body, id: Date.now() };
}
@Put(":id") // PUT /users/:id
update(@Param("id") id: string, @Body() body: any) {
return { id, ...body };
}
@Delete(":id") // DELETE /users/:id
remove(@Param("id") id: string) {
return { message: "deleted", id };
}
}Route Params ও Query
// URL: /users/5/posts?limit=10&sort=asc
@Get(":id/posts")
getUserPosts(
@Param("id") userId: string,
@Query("limit") limit = "10",
@Query("sort") sort = "asc",
) {
return { userId, limit, sort };
}Status Codes
import { HttpCode, HttpStatus } from "@nestjs/common";
@Post()
@HttpCode(HttpStatus.CREATED) // 201
create(@Body() data: any) {
return data;
}
// অথবা @Res() দিয়ে manual
@Get(":id")
custom(@Res() res: ExpressResponse) {
res.status(404).json({ error: "Not found" });
}@Res() এড়িয়ে চলুন
@Res() ব্যবহার করলে NestJS-এর interceptor/pipe flow-এ বাধা পড়তে পারে। সাধারণত return value দিয়েই কাজ করা best practice।
শেষ প্যারায় নিজে practice করুন — কোড কপি করে নিজের এডিটরে চালিয়ে দেখুন।