Tạo REST API cơ bản với Express, Mongoose, MongoDB, Postman (2022)

Поділитися
Вставка
  • Опубліковано 23 лип 2024
  • 😎Xin chào, mình là Duy (Daniel), video này chúng ta sẽ cùng nhau tìm hiểu về cách tạo REST API với đầy đủ thao tác CRUD cơ bản với Express, Mongoose, MongoDB và test với Postman
    🥰 Github repo:
    github.com/anhduy1202/UA-cam...
    🤩 Libs/Packages mình tải trong video:
    - npm install express dotenv cors body-parser axios cheerio
    Mốc thời gian:
    0:00 - Giới thiệu
    0:18 - Project trong video
    05:26 - Setup project
    12:05 - Setup MongoDB
    19:34 - Tạo Model
    26:31 - Tạo Routes + Controllers
    31:00 - Cách sử dụng Postman
    35:29 - .save()
    40:25 - .find()
    47:20 - .findById()
    48:45 - .updateOne()
    56:48 - req.params
    58:28 - .populate()
    1:09:52 -. findByIdAndDelete()
    1:11:04 - .updateMany()
    1:20:44 - Outro
    👽 Liên hệ với mình tại:
    Website: danieltruongg.com
    Instagram: / danieltruon. .
    Github: github.com/anhduy1202
  • Наука та технологія

КОМЕНТАРІ • 92

  • @user-mi5he1zy3t
    @user-mi5he1zy3t 11 місяців тому

    Cảm ơn anh rất nhiều, mong a ra thêm nhiều video hay nữa!

  • @KhangNguyen-kq2iw
    @KhangNguyen-kq2iw 2 роки тому

    Video hay quá bạn ơi, mong bạn ra 1 video về các câu truy vấn hay như pull và push như trong video, mà k phải ai cũng biết

  • @namhoai452
    @namhoai452 2 роки тому +1

    video rất hữu ích, mong b ra thêm video biết BE node dùng typescript.

  • @NTChannel127
    @NTChannel127 Рік тому

    Video rất hữu ích, Chúc anh có nhiều sức khỏe và chia sẻ nhiều kiến thức nữa

  • @myhanhnguyen5198
    @myhanhnguyen5198 Рік тому

    cam on ban rat nhieu, video rat de hieu, cach giang cua ban rat hay

  • @thaiquy926
    @thaiquy926 2 роки тому

    Video hay lắm a . Mong a ra thêm nhiều chức năng hơn

  • @trinhqhuy
    @trinhqhuy Рік тому

    video hay quá bạn ơi ❤❤❤❤

  • @kudoo39
    @kudoo39 7 місяців тому

    video rất hay anh ơiiii, nhân tiện nếu được mong anh hướng dẫn viết unit test cho rest api như này đi anh

  • @linhluong6698
    @linhluong6698 12 днів тому

    Cảm ơn bạn

  • @ICOReviewtoken
    @ICOReviewtoken 2 роки тому

    Bạn ơi viết tiếp sâu về các API thực tế hay làm đi, như pagination, search, filters, soft...

  • @quyettranvan6506
    @quyettranvan6506 10 місяців тому

    Anh làm thêm nhiều video về phía backend đi ạ

  • @techknowledge8958
    @techknowledge8958 6 місяців тому +3

    I don't understand your language
    But your way of coding is very good
    Great work bro

    • @SOSNu
      @SOSNu 4 місяці тому

      ok

  • @baovuong3238
    @baovuong3238 2 роки тому

    Anh có làm video hướng dẫn redux + typescript không ạ

  • @sonhuynh570
    @sonhuynh570 2 роки тому

    video có tâm quá nhưng mình góp ý một chút là bạn nên nói chậm lại một xíu thôi để cho mấy bạn mới có thể theo kịp nội dung video ý

  • @giangngo3503
    @giangngo3503 2 роки тому

    mong bạn ra khóa MERN luon , cảm ơn bạn rất nhiều

  • @minhthuanpham571
    @minhthuanpham571 Рік тому

    e chưa bt j về nodejs,vs mongo ,ms code 1 con web react h e xem video này xog có thể tạo đc nhữg api cơ bản ko ạ a,hay phải học cặn kẽ các lí thuyến các thứ a nhỉ

  • @VinhNguyen-lv4zx
    @VinhNguyen-lv4zx Рік тому

    Cho mình hỏi là khi kết nối Mongo ở local thì nó báo lỗi "MongooseError: Operation `courses.insertOne()` buffering timed out after 10000ms" thì do đâu vậy bạn

  • @tienhuynh2435
    @tienhuynh2435 5 місяців тому

    quá dữ

  • @quocdungnguyen615
    @quocdungnguyen615 2 роки тому

    làm về socket đi bạn ơi!

  • @ThuanPham-ev8yh
    @ThuanPham-ev8yh Рік тому

    Cho mình hỏi tại sao khi delete a book thì sau khi delete thì get an Author để check thì book đã bị xóa tuy nhiên nếu chọn get All Authors thì id của book trong mảng books vẫn tồn tại nhỉ ?

  • @hoangson1952
    @hoangson1952 2 роки тому

    anh ơi hướng dẫn cách deploy con server này lên heroku hay v.v luôn ạ :3

  • @tutraninh1141
    @tutraninh1141 2 роки тому

    Chào ông, tôi có một bài tập như là Design a CRUD API of specify objects which you want to manage and store to database, cho tui xin tham khảo video này của ông nhé

  • @SonTran-tq3ej
    @SonTran-tq3ej 6 місяців тому

    a có ý định ra phần nâng cao không anh

  • @caotichcuc
    @caotichcuc Рік тому

    MongooseError: Operation `authors.insertOne()` buffering timed out after 10000ms
    ==> cho em hỏi lỗi này fix thế nào ạ, em alfm theo các anh bên dưới mà k được ạ.

  • @changchang6536
    @changchang6536 Рік тому

    Cho mình hỏi là tại sao mình post nó lại không hiện username ta, mình follow từng steps mà lúc post nó chỉ có books trở xuống k có hiện name của author

  • @thesweetname1703
    @thesweetname1703 Рік тому

    Bây giờ trong mongDB có data rồi, giờ làm sao để lấy nó ra để sử dụng bay giờ được vậy nhỉ ?

  • @trieunguyentuan8844
    @trieunguyentuan8844 2 роки тому

    Có cách nào để search bằng tiếng việt ko bạn

  • @linhdogiao8354
    @linhdogiao8354 2 роки тому +2

    ae nào bị ko updateone đc ko nhỉ

  • @truonghoanglong541
    @truonghoanglong541 2 роки тому

    làm luôn MERN cho ngầu =))

  • @Huydev
    @Huydev Рік тому

    Giảng hay ngắn gọn nhưng đầy đủ ý nghĩa. cảm ơn cậu rất nhiều. góp ý là video hơi mờ nên hơi đau mắt.

    • @DanielTruongDev
      @DanielTruongDev  Рік тому

      b chỉnh chất lượng video 1080p xem sao nhé, mình thấy bên mình nhìn rõ code mà

  • @chautruong1568
    @chautruong1568 2 роки тому

    Đẹp trai qué

  • @vuduynhien38
    @vuduynhien38 Рік тому

    a che pass mấy lần xogn cuối cùng để lộ ở 17:47 :v

  • @trieunguyentuan4589
    @trieunguyentuan4589 2 роки тому

    Thêm chức năng auth, với lại comment về sách nữa bạn ơi ^_^

    • @DanielTruongDev
      @DanielTruongDev  2 роки тому

      tại này mình làm cơ bản CRUD th à nên hong thêm mấy cái đó được, b check video JWT của mình thì có chứ năng Auth ấy

  • @loinguyenvan9287
    @loinguyenvan9287 5 місяців тому

    video của bạn rất hay ạ. Mình có thể liên hệ với bạn được không ạ ?

  • @vikomedpacs5708
    @vikomedpacs5708 Рік тому

    Tại sao trong DB, tên các Table lại là books và authors mà không phải là book và author

  • @dayladanhnemay9841
    @dayladanhnemay9841 Рік тому

    Theme gi vay a

  • @unclefivefootball
    @unclefivefootball 2 роки тому

    E có thể cho a hỏi sự khác biệt giữa SQL và MongoDB không ? Và thực tế thì người ta áp dụng 2 cơ sở dữ liệu này như thế nào không ?

    • @trieunguyentuan4589
      @trieunguyentuan4589 2 роки тому +2

      Tùy dự án, tùy theo cty. Đặc biệt là tùy theo lead của bạn chọn DB nào nha ^_^

    • @unclefivefootball
      @unclefivefootball 2 роки тому

      @@trieunguyentuan4589 cảm ơn bạn nhé

    • @DanielTruongDev
      @DanielTruongDev  2 роки тому +5

      SQL thì chỉ là ngôn ngữ truy vấn (query language) thui nhé, còn nếu so sánh với MongoDB thì sẽ có MySQL, SQLite,… vì tụi nó đều là DBMS, còn xài cái nào thì còn tuỳ vào dự án nữa, thường thì dự án xài React ngta sẽ xài MERN stack (MongoDB Express React Node) trong đó có MongoDB vì tụi nó bổ trợ lẫn nhau tốt, còn nếu xài PHP hay Python các kiểu thì ngta sẽ xài MySQL

  • @QuangHuy-is7jo
    @QuangHuy-is7jo 8 місяців тому

    anh cho em hỏi là nếu một trường là image thì phải là làm sao ạ ?

    • @DanielTruongDev
      @DanielTruongDev  8 місяців тому

      nếu là ảnh thì em lưu dưới dạng link tới cái ảnh đó th

  • @tinh7097
    @tinh7097 2 роки тому

    em setup Mongoose giống anh mà tới chỗ save() thì bị lỗi
    MongooseError: Operation `authors.insertOne()` buffering timed out after 10000ms

    • @DanielTruongDev
      @DanielTruongDev  2 роки тому

      e thử thay await thành .then() xem sao,
      .save().then(()=> {
      res.status(200).json(“Saved”)
      });

  • @inhtuan9829
    @inhtuan9829 2 роки тому +1

    lỗi MongooseError: Operation `authors.insertOne()` buffering timed out after 10000ms là lỗi gì anh nhỉ

    • @tranan8777
      @tranan8777 Рік тому

      mình gặp y chang tốn 2 tiếng để fix

  • @namhoai452
    @namhoai452 2 роки тому

    var bodyParser = require('body-parser'); mình thay bằng import { bodyParser } from 'body-parser'; đc k nhỉ

    • @phanduonginh7769
      @phanduonginh7769 Рік тому

      Được nhưng mà phải sửa file package thành dạng module

  • @vunguyenhoang2334
    @vunguyenhoang2334 2 роки тому +2

    mình làm theo bạn đến lúc post trong postman, nó lấy data nhưng chỉ hiển thị {}, search fix thì nó hướng dẫn thêm app.use(express.json()); đã thêm nhưng vẫn lỗi, mong bạn chỉ dẫn, có khi nào đó là lỗi IP ko bạn

    • @thaiquy926
      @thaiquy926 2 роки тому +1

      Mình nghĩ b chưa cài body-parser

    • @haitrieu287
      @haitrieu287 2 роки тому

      @@thaiquy926 minh cung the ban fix dc chua

    • @thaiquy926
      @thaiquy926 2 роки тому

      @@haitrieu287 fix dc r b

    • @linhdogiao8354
      @linhdogiao8354 2 роки тому

      @@thaiquy926 ae len mongo set full quyền ip nhé

    • @kientran481
      @kientran481 2 роки тому

      @@thaiquy926 Làm thế nào thế bạn ơi, mình ko biết giải quyết như nào

  • @quangphu7646
    @quangphu7646 Рік тому

    khi 2 model khác file thì ref với nhau kiểu nào v m.n?

  • @huyipngo7972
    @huyipngo7972 Рік тому

    anh ơi cho em hỏi, em npm start, nó truy xuất được tới file rồi, nhưng ko in ra được dòng console.log là sao ạ

    • @DanielTruongDev
      @DanielTruongDev  Рік тому

      em vào group Discord hỏi cho dễ nhé

    • @huyipngo7972
      @huyipngo7972 Рік тому

      @@DanielTruongDev cho em xin link discord với ạ

    • @DanielTruongDev
      @DanielTruongDev  Рік тому

      em check trong phần mô tả của kênh ấy

  • @duongtran-hi2ff
    @duongtran-hi2ff 2 роки тому

    id được tạo bởi mongoo khá dài và khó nhớ, vậy thì sao mà người dùng nhập được để mà lưu tác giả .-.

    • @tienhuynh2435
      @tienhuynh2435 5 місяців тому +1

      đó là vấn đề của dev thể hiện ở front end như nào để người dùng có thể dễ dàng sử dụng

  • @ngocxuan9615
    @ngocxuan9615 2 роки тому

    che mật khẩu nhưng ở phút 17:45 lại như không che... Hảo che... :)

  • @huyduong6425
    @huyduong6425 2 роки тому

    không biết sao đến đoạn save() mình không thể tương tác gì với database đc, toàn trả về 500 thôi :(

    • @vietdientang3907
      @vietdientang3907 Рік тому

      Ô fix được chưa, giúp tui với

    • @huyduong6425
      @huyduong6425 Рік тому

      @@vietdientang3907 mình ko viết theo mô hình mvc thì nó lại đc :)) khó hiểu thực sự

  • @haitrieu287
    @haitrieu287 2 роки тому

    mình làm theo bạn đến lúc post trong postman, nó lấy data nhưng chỉ hiển thị {} HELP ME voi anh oi em gia anh 100k

    • @DTD310
      @DTD310 Рік тому

      khả năng là bạn gọi cái route trong index.js trước thằng use(bodyParser)

  • @tiepphanvan2494
    @tiepphanvan2494 2 роки тому

    Mình bị lỗi ở phương thức post chỗ method.save, nó cứ trả về status 500 và không lưu vào database

    • @DanielTruongDev
      @DanielTruongDev  2 роки тому

      lúc b chạy server thì nó có báo connect to MongoDB chưa

    • @tiepphanvan2494
      @tiepphanvan2494 2 роки тому

      @@DanielTruongDev có hiện r

    • @DanielTruongDev
      @DanielTruongDev  2 роки тому

      @@tiepphanvan2494 thế b thay res.status(500).json(err) bằng res.status(500).json(err.msg) xem nó trả về cho b lỗi gì

    • @tiepphanvan2494
      @tiepphanvan2494 2 роки тому

      @@DanielTruongDev đây bạn
      MongooseError: Operation `datas.insertOne()` buffering timed out after 10000ms
      at Timeout. (C:\Users\Admin\Desktop
      estful api
      ode_modules\mongoose\lib\drivers
      ode-mongodb-native\collection.js:151:23)
      at listOnTimeout (node:internal/timers:564:17)
      at process.processTimers (node:internal/timers:507:7)

    • @tiepphanvan2494
      @tiepphanvan2494 2 роки тому

      Mình đã fix được, cảm ơn bạn

  • @khoango6300
    @khoango6300 Рік тому

    có link github bài này ko a

    • @DanielTruongDev
      @DanielTruongDev  Рік тому

      b check phần mô tả của video có á, cho mình 1 sao luôn nhé :))

    • @khoango6300
      @khoango6300 Рік тому

      Github a sao có mỗi file index.js thui á

    • @DanielTruongDev
      @DanielTruongDev  Рік тому +1

      @@khoango6300 à hình như anh bỏ nhầm repo =)) để a fix lại

    • @DanielTruongDev
      @DanielTruongDev  Рік тому

      @@khoango6300 a update r á

    • @khoango6300
      @khoango6300 Рік тому

      @@DanielTruongDev dạ cảm ơn a

  • @TrungNguyen-pn1rg
    @TrungNguyen-pn1rg Рік тому

    thầy còn sống không ạ