# Validation và DTO (Node.js / NestJS) > class-validator, class-transformer, DTO, ValidationPipe, custom validator, sanitization - 20 câu hỏi phỏng vấn - Junior - [Câu hỏi phỏng vấn: Node.js / NestJS](https://sharpskill.dev/vi/technologies/node-nestjs/cau-hoi-phong-van.md) ## 1. DTO (Data Transfer Object) trong NestJS là gì? **Câu trả lời** DTO là một lớp TypeScript định nghĩa cấu trúc của dữ liệu được truyền giữa client và server. Nó hoạt động như một hợp đồng dữ liệu và cho phép tự động xác thực đầu vào bằng các decorator như @IsString hoặc @IsNumber. DTO cải thiện bảo mật bằng cách lọc các thuộc tính không được phép và giúp việc bảo trì mã dễ dàng hơn. ## 2. Package nào cho phép thêm các ràng buộc xác thực vào DTO? **Câu trả lời** Package class-validator cung cấp các decorator xác thực như @IsString, @IsEmail, @Min, @Max cho phép định nghĩa các quy tắc xác thực trên các thuộc tính của DTO. Nó hoạt động cùng với ValidationPipe để tự động xác thực dữ liệu đến. Package này được sử dụng rộng rãi trong hệ sinh thái NestJS để đảm bảo tính toàn vẹn của dữ liệu. ## 3. Decorator nào xác thực rằng một thuộc tính là một chuỗi? **Câu trả lời** Decorator @IsString xác minh rằng một thuộc tính có kiểu string. Nó được áp dụng trực tiếp lên thuộc tính của DTO và tự động từ chối bất kỳ giá trị nào không phải là chuỗi. Decorator này là một trong những decorator được sử dụng phổ biến nhất vì nó bao quát một trường hợp xác thực rất thường gặp trong các REST API. ## Còn 17 câu hỏi nữa - ValidationPipe nên được cấu hình ở đâu để xác thực tất cả các route của ứng dụng? - Decorator nào xác thực rằng một trường không rỗng? Đăng ký miễn phí: https://sharpskill.dev/vi/login ## Các chủ đề phỏng vấn Node.js / NestJS khác - [Kiến thức cơ bản về Node.js](https://sharpskill.dev/vi/technologies/node-nestjs/cau-hoi-phong-van/nodejs-fundamentals.md): 20 câu hỏi, Junior - [API lõi Node.js](https://sharpskill.dev/vi/technologies/node-nestjs/cau-hoi-phong-van/nodejs-core-apis.md): 25 câu hỏi, Junior - [Lập trình bất đồng bộ](https://sharpskill.dev/vi/technologies/node-nestjs/cau-hoi-phong-van/asynchronous-programming.md): 25 câu hỏi, Junior - [Cơ bản về Express.js](https://sharpskill.dev/vi/technologies/node-nestjs/cau-hoi-phong-van/express-basics.md): 20 câu hỏi, Junior - [Nền tảng NestJS](https://sharpskill.dev/vi/technologies/node-nestjs/cau-hoi-phong-van/nestjs-fundamentals.md): 23 câu hỏi, Junior - [Thiết kế REST API](https://sharpskill.dev/vi/technologies/node-nestjs/cau-hoi-phong-van/rest-api-design.md): 20 câu hỏi, Junior - [Tài liệu API & Hợp đồng](https://sharpskill.dev/vi/technologies/node-nestjs/cau-hoi-phong-van/api-documentation.md): 20 câu hỏi, Junior - [Xử lý lỗi](https://sharpskill.dev/vi/technologies/node-nestjs/cau-hoi-phong-van/error-handling.md): 20 câu hỏi, Junior - [Kiểm thử đơn vị](https://sharpskill.dev/vi/technologies/node-nestjs/cau-hoi-phong-van/testing-unit.md): 20 câu hỏi, Junior - [Lập lịch tác vụ](https://sharpskill.dev/vi/technologies/node-nestjs/cau-hoi-phong-van/scheduling-cron.md): 15 câu hỏi, Junior - [Module và DI trong NestJS](https://sharpskill.dev/vi/technologies/node-nestjs/cau-hoi-phong-van/nestjs-modules-di.md): 20 câu hỏi, Mid-Level - [Cấu hình & Quản lý môi trường](https://sharpskill.dev/vi/technologies/node-nestjs/cau-hoi-phong-van/configuration-environment.md): 20 câu hỏi, Mid-Level - [Xác thực JWT](https://sharpskill.dev/vi/technologies/node-nestjs/cau-hoi-phong-van/authentication-jwt.md): 25 câu hỏi, Mid-Level - [Phân quyền và RBAC](https://sharpskill.dev/vi/technologies/node-nestjs/cau-hoi-phong-van/authorization-rbac.md): 20 câu hỏi, Mid-Level - [Cơ sở dữ liệu với TypeORM](https://sharpskill.dev/vi/technologies/node-nestjs/cau-hoi-phong-van/database-typeorm.md): 30 câu hỏi, Mid-Level - [Prisma ORM](https://sharpskill.dev/vi/technologies/node-nestjs/cau-hoi-phong-van/prisma-orm.md): 25 câu hỏi, Mid-Level - [Middleware và Interceptor](https://sharpskill.dev/vi/technologies/node-nestjs/cau-hoi-phong-van/middleware-interceptors.md): 20 câu hỏi, Mid-Level - [Tải lên tệp](https://sharpskill.dev/vi/technologies/node-nestjs/cau-hoi-phong-van/file-upload.md): 15 câu hỏi, Mid-Level - [WebSockets](https://sharpskill.dev/vi/technologies/node-nestjs/cau-hoi-phong-van/websockets.md): 20 câu hỏi, Mid-Level - [GraphQL với NestJS](https://sharpskill.dev/vi/technologies/node-nestjs/cau-hoi-phong-van/graphql-basics.md): 25 câu hỏi, Mid-Level - [Kiểm thử End-to-End](https://sharpskill.dev/vi/technologies/node-nestjs/cau-hoi-phong-van/testing-e2e.md): 20 câu hỏi, Mid-Level - [Caching với Redis](https://sharpskill.dev/vi/technologies/node-nestjs/cau-hoi-phong-van/caching-redis.md): 20 câu hỏi, Mid-Level - [Hàng đợi với Bull](https://sharpskill.dev/vi/technologies/node-nestjs/cau-hoi-phong-van/queues-bull.md): 20 câu hỏi, Mid-Level - [DevOps, Logging & CI/CD](https://sharpskill.dev/vi/technologies/node-nestjs/cau-hoi-phong-van/logging-monitoring.md): 25 câu hỏi, Mid-Level - [Docker & Đóng gói container](https://sharpskill.dev/vi/technologies/node-nestjs/cau-hoi-phong-van/docker-containerization.md): 25 câu hỏi, Mid-Level - [Microservices](https://sharpskill.dev/vi/technologies/node-nestjs/cau-hoi-phong-van/microservices.md): 30 câu hỏi, Senior - [Các phương pháp bảo mật tốt nhất](https://sharpskill.dev/vi/technologies/node-nestjs/cau-hoi-phong-van/security-best-practices.md): 25 câu hỏi, Senior - [Hiệu năng và triển khai Cloud](https://sharpskill.dev/vi/technologies/node-nestjs/cau-hoi-phong-van/performance-optimization.md): 30 câu hỏi, Senior --- Source: SharpSkill (https://sharpskill.dev), tech interview preparation for your real stack. HTML version of this page: https://sharpskill.dev/vi/technologies/node-nestjs/cau-hoi-phong-van/validation-dto