thảo luận [NodeJS] Restful API nên dùng Express hay NestJs

  • Người tạo chủ đề Người tạo chủ đề BaronNashor
  • Ngày bắt đầu Ngày bắt đầu
Mình xài cả 2 thằng này rồi. Dự án hiện tại đang dùng nestjs.

Cảm nhận của bản thân là không có cơ sở nào để đánh giá độ ngon hơn của 1 fw. Chung quy lại thì nó chỉ là công cụ để mình thực hiện công việc, the right tools for the right job :D

Cơ mà thằng nestjs nó có nhiều công cụ nhưng chỉ để thực hiện cùng 1 công việc quá mấy thím :D ví dụ tạo 1 cái DTO đi, dùng @ApiProperty({required: false}) cũng được mà gõ luôn @ApiPropertyOptional() cũng được.


Tiện mấy thím cho em hỏi case này với.
Em đang dùng class-validator của thằng này để validate object nested object. Vấn đề là nó bắt được lỗi nhưng message error throw ra chỉ là 1 object rỗng.

Search nát gg mà chưa thấy ai gặp vấn đề giống mình :(

via theNEXTvoz for iPhone

Có 2 lựa chọn cho bác.
Một là custom lại Exception của nestjs.
Hai là bác dùng ntn @IsPhone({message: "this is message"})

Gửi từ Samsung SM-A730F bằng vozFApp
 
Mình xài cả 2 thằng này rồi. Dự án hiện tại đang dùng nestjs.

Cảm nhận của bản thân là không có cơ sở nào để đánh giá độ ngon hơn của 1 fw. Chung quy lại thì nó chỉ là công cụ để mình thực hiện công việc, the right tools for the right job :D

Cơ mà thằng nestjs nó có nhiều công cụ nhưng chỉ để thực hiện cùng 1 công việc quá mấy thím :D ví dụ tạo 1 cái DTO đi, dùng @ApiProperty({required: false}) cũng được mà gõ luôn @ApiPropertyOptional() cũng được.


Tiện mấy thím cho em hỏi case này với.
Em đang dùng class-validator của thằng này để validate object nested object. Vấn đề là nó bắt được lỗi nhưng message error throw ra chỉ là 1 object rỗng.

Search nát gg mà chưa thấy ai gặp vấn đề giống mình :(

via theNEXTvoz for iPhone
Class validator hơi dở. Giả sử mình decorate 1 thuộc tính là optional. Cuối cùng cái type nó infer ra vẫn là luôn tồn tại. Wtf?
Dùng zod ngon hơn khá nhiều
https://github.com/colinhacks/zod
 
code Nestjs ngon mà, buitin typescript là yêu rồi, bên dưới nó thường là Express luôn đấy, mà code express thường cũng phải thêm thắt đủ thứ rồi cuối cùng cũng lại đâm đầu vào cái tương tự nestjs thôi.
 
Mình tưởng để thế này là được
@Optional()
var?: number;
cái var lúc trỏ vào nó vẫn ra là number or undefine mà nhỉ
Chẳng hạn bạn quên thêm ? vào thì sao. Rồi sau này sửa chỗ này, update chỗ kia phải nhớ mà sửa đủ cả 2 thứ. Vậy có phải error prone ko.

Chưa kể mình còn có thể làm như này, nhìn rất vô lý nhưng nó sẽ ko báo lỗi lúc compile:
1632531975769.png


Nhìn qua 1 ví dụ khác với zod nhé, nó sẽ luôn infer đúng cái type cho mình, đảm bảo consistency


1632532207585.png
 
Sửa lần cuối:
Chẳng hạn bạn quên thêm ? vào thì sao. Rồi sau này sửa chỗ này, update chỗ kia phải nhớ mà sửa đủ cả 2 thứ. Vậy có phải error prone ko.

Chưa kể mình còn có thể làm như này, nhìn rất vô lý nhưng nó sẽ ko báo lỗi lúc compile:
Xem tệp đính kèm 781648

Nhìn qua 1 ví dụ khác với zod nhé, nó sẽ luôn infer đúng cái type cho mình, đảm bảo consistency


Xem tệp đính kèm 781650
À. mình hiểu. Đã từng gặp mấy case như thế này.
Mà zod có thể khai báo chung schema với class như này k nhỉ.
@Prop({
type: String})
@MinLenth(10)
address: string;
 
NestJS built on express mà. Nếu app mì ăn liền ko update nữa thì xài express cho nhanh. Còn nếu định làm app lớn lâu dài thì cắm nestjs. Nó làm theo concept có sẵn của nó nên sau này đỡ đụng phải những cú hack não.
 
À. mình hiểu. Đã từng gặp mấy case như thế này.
Mà zod có thể khai báo chung schema với class như này k nhỉ.
@Prop({
type: String})
@MinLenth(10)
address: string;
Mình nghĩ là không, nhưng bạn có thể dùng class implement cái type infer đc ra từ zod schema
 
Từ xưa giờ thì mình vẫn gắn bó với express
Nhưng hôm nay cũng mới dùng thử NestJS thì thấy đọc qua cái docs cũng sợ thật nhưng mà bỏ ra chừng buổi sáng là đủ hiểu được cách dùng của nó. Nhưng mà làm việc với JS thì mình lại ko thích cách viết bằng class nên express vẫn là số 1 :shame:

via theNEXTvoz for iPhone
 
mấy bác cho em hỏi, mấy bác intergrate API cho front end bằng nestjs các bác có setup limit request ko ạ? dùng tool nào và config sao thì hợp lí.
các bác chỉ giáo e
 
Nhanh gọn solo thì => Strapi
Team ít người mà deadline dí thì => ExpressJs
Team nhiều người mà muốn tổ chức code đẹp, dể maintain và scale => NestJs
 

Thống kê chủ đề

Ngày tạo
BaronNashor,
Người trả lời cuối
meohen2109,
Trả lời
52
Lượt xem
17.302
Quay lại
Lên đầu trang