مثل اکثر فریمورکهای برنامه نویسی تحت وب، کنترل کننده های Nest.js نیز مسئولیت رسیدگی به درخواست های دریافتی کاربر و ارسال پاسخ به طرف کلاینت را دارند. به عنوان مثال ، اگر یک API به یک نقطه پایانی خاص ، مثلاً (home/) خانه اشاره کند ، کنترلر این درخواست را دریافت می کند و بر اساس منابع موجود ، پاسخ مناسب را بر می گرداند.

Nest.js به شکلی ساخته شده است که مکانیسم مسیریابی قادر باشد بفهمد که کدام کنترلر مسئولیت رسیدگی به یک درخواست خاص را بر عهده دارد.

تعریف یک کنترلر اصلی در Nest.js به سادگی ایجاد یک فایل TypeScript است که شامل یک دکوراتور Controller مانند قطعه کد زیر میشود:

// users.controller.ts 

import { Controller, Get } from '@nestjs/common';

@Controller('users')
export class UsersController {
 @Get()
 findAll() { 
   return 'This will return all the users';
 }
}

برچسب users در داخل دکوراتور UsersController، کنترلر را وادار می کند تا هر درخواست GET که از سمت کاربر آمد را رسیدگی کند و پاسخی را که مشخص شده است ، برگرداند. سایر درخواست های HTTP که توسط کنترل کننده میتواند کنترل  شود شامل POST ، PUT ، DELETE است که بعداً در این آموزش خواهیم دید.

پس از ایجاد یک کنترلر ، برای اینکه Nest.js بتواند آن کنترلر رابشناسد، باید در تعریف ماژول اضافه شود. این ماژول می تواند ماژول اصلی ApplicationModule یا هر ماژول دیگر ایجاد شده در برنامه باشد. موارد بیشتر در بخش ماژول ها توضیح داده خواهد شد.