Logo video2dn
  • Сохранить видео с ютуба
  • Категории
    • Музыка
    • Кино и Анимация
    • Автомобили
    • Животные
    • Спорт
    • Путешествия
    • Игры
    • Люди и Блоги
    • Юмор
    • Развлечения
    • Новости и Политика
    • Howto и Стиль
    • Diy своими руками
    • Образование
    • Наука и Технологии
    • Некоммерческие Организации
  • О сайте

Скачать или смотреть RESTful API Golang Gin #62: DEBUG & FIX Lỗi Thêm User | Xử lý Kiểu dữ liệu Nullable với SQLC

  • Code With Tuan
  • 2025-07-04
  • 103
RESTful API Golang Gin #62: DEBUG & FIX Lỗi Thêm User | Xử lý Kiểu dữ liệu Nullable với SQLC
  • ok logo

Скачать RESTful API Golang Gin #62: DEBUG & FIX Lỗi Thêm User | Xử lý Kiểu dữ liệu Nullable với SQLC бесплатно в качестве 4к (2к / 1080p)

У нас вы можете скачать бесплатно RESTful API Golang Gin #62: DEBUG & FIX Lỗi Thêm User | Xử lý Kiểu dữ liệu Nullable với SQLC или посмотреть видео с ютуба в максимальном доступном качестве.

Для скачивания выберите вариант из формы ниже:

  • Информация по загрузке:

Cкачать музыку RESTful API Golang Gin #62: DEBUG & FIX Lỗi Thêm User | Xử lý Kiểu dữ liệu Nullable với SQLC бесплатно в формате MP3:

Если иконки загрузки не отобразились, ПОЖАЛУЙСТА, НАЖМИТЕ ЗДЕСЬ или обновите страницу
Если у вас возникли трудности с загрузкой, пожалуйста, свяжитесь с нами по контактам, указанным в нижней части страницы.
Спасибо за использование сервиса video2dn.com

Описание к видео RESTful API Golang Gin #62: DEBUG & FIX Lỗi Thêm User | Xử lý Kiểu dữ liệu Nullable với SQLC

🔥 Chào mừng bạn quay trở lại với series khóa học lập trình RESTful API với Gin Framework của Golang! Khóa học được thiết kế từng bước giúp người mới bắt đầu xây dựng API chuyên nghiệp.

Ở bài học trước (Bài 61), chúng ta đã bắt tay vào xây dựng chức năng "Thêm thành viên" (Create User) và gặp phải một lỗi "panic" khó chịu liên quan đến nil pointer và scan error. Bạn có đang băn khoăn làm thế nào để tìm ra gốc rễ vấn đề và khắc phục chúng một cách hiệu quả trong dự án thực tế? Chào mừng bạn đến với Bài 62!

Mục tiêu chính của video này:
Video này sẽ tập trung vào quá trình "debug" (gỡ lỗi) chuyên sâu để tìm hiểu nguyên nhân và cách khắc phục các lỗi đã gặp ở bài trước. Chúng ta sẽ cùng nhau phân tích stack trace, kiểm tra các biến, và áp dụng kiến thức về cấu hình SQLC cũng như xử lý kiểu dữ liệu nullable (`sql.NullTime`, `sql.NullInt32`) trong Golang. Ngoài ra, chúng ta cũng sẽ xử lý thêm lỗi trùng lặp email và tinh chỉnh quá trình Data Mapping để đảm bảo dữ liệu trả về an toàn và chính xác.

📌 Nội dung chính trong Bài 34 này:
✅ Phân tích và debug lỗi `invalid memory address or nil pointer` ban đầu.
✅ Tìm ra nguyên nhân gốc rễ: Hàm khởi tạo kết nối Database (`initDB`) chưa được gọi.
✅ Khắc phục lỗi nil pointer bằng cách gọi hàm `initDB` ở điểm khởi chạy ứng dụng.
✅ Debug vấn đề Handler trả về response không chính xác khi có lỗi.
✅ Khắc phục: Thêm lệnh `return` sau khi trả về lỗi từ Handler.
✅ Phân tích và debug lỗi `scan error` liên quan đến kiểu dữ liệu `timestamp with time zone` (deleted_at) có giá trị NULL.
✅ Giải thích cách SQLC generate code cho kiểu nullable và sự khác biệt với kiểu non-nullable.
✅ Kiểm tra và điều chỉnh cấu hình SQLC (`sqlc.yaml`) liên quan đến `emit_pointers_for_null_types` và `overrides` để xử lý kiểu `time.Time` nullable.
✅ Thử nghiệm các cách xử lý lỗi `scan error` và tìm ra giải pháp phù hợp với SQLC.
✅ Xử lý lỗi trùng lặp dữ liệu (Duplicate Key Error - SQLSTATE 23505) khi thêm user đã tồn tại email.
✅ Implement logic bắt lỗi SQL cụ thể (`pgconn.PgError`) và trả về HTTP status code 409 Conflict.
✅ Tinh chỉnh Data Mapping từ Model SQLC sang DTO: Hướng dẫn cách xử lý các trường nullable trong DTO (ví dụ: định dạng thời gian NULL, xử lý giá trị Age NULL).

🔔 Đừng quên:
🚀 Theo dõi toàn bộ khóa học tại đây:    • Master RESTful API với Golang và Gin: Khóa...  
👍 Nhấn LIKE video này nếu bạn thấy hữu ích.
🎯 SUBSCRIBE (Đăng ký) kênh và bật chuông thông báo để nhận được những bài học mới nhất về lập trình Golang, Gin Framework và RESTful API.
📩 Tham gia nhóm học tập:   / discord  
📚 Tài liệu & Source code: https://github.com/quoctuan9901/khoa-...

⏰ Timestamps:
00:20 - Nhắc lại lỗi `invalid memory address` từ bài trước
00:32 - Bắt đầu Debug: Kiểm tra nil pointer ở Repository
00:56 - Debug: In ra biến DB connection (ur.db)
01:28 - Phát hiện nguyên nhân: DB connection bị nil
01:35 - Tìm gốc rễ: Hàm khởi tạo DB (initDB) chưa được gọi
02:20 - Khắc phục lỗi Nil Pointer: Gọi initDB ở Main
02:59 - Chạy lại Server & Kiểm tra kết quả
03:06 - Phát hiện lỗi mới: Handler trả về response không chính xác
03:16 - Khắc phục: Thêm `return` sau khi trả lỗi trong Handler
03:33 - Kiểm tra dữ liệu trong Database & Xóa dữ liệu cũ để test lại
04:09 - Thực hiện DELETE toàn bộ dữ liệu trong bảng User
04:53 - Chạy lại Server & Kiểm tra lỗi Scan Error
05:05 - Phân tích lỗi Scan Error trên trường `deleted_at` (nullable Time)
05:40 - Kiểm tra Migration & SQLC generated Model cho trường deleted_at
06:03 - Giải thích lý do Scan Error xảy ra (NULL trong DB vs time.Time trong Go struct)
06:18 - (Thử nghiệm tạm thời) Sửa thủ công generated code (KHÔNG NÊN LÀM!)
06:30 - Test lại với code sửa thủ công (Lỗi Scan Error biến mất)
06:53 - Hoàn tác sửa thủ công & Kiểm tra lại SQLC config (`sqlc.yaml`)
09:20 - Trả về lỗi 409 Conflict khi trùng Email
09:49 - Test xử lý lỗi trùng Email (Thành công)
10:06 - Quay lại xử lý hiển thị trường nullable trong Output DTO (deleted_at)
10:44 - (Thử nghiệm) Tạm thời thêm NOW() vào INSERT để test scan non-NULL deleted_at
11:06 - Re-generate SQLC
11:48 - Test insert với deleted_at non-NULL (works)
12:10 - Revert INSERT query (deleted_at = NULL) & re-generate
13:29 - Test insert NULL & kiểm tra output DTO (định dạng thời gian 0001)
14:47 - Implement logic xử lý định dạng thời gian nullable trong DTO Mapping
19:48 - Cập nhật Validation Input DTO cho Status và Level (cho phép giá trị 3)
20:49 - Test lại Mapping Status/Level (works)
21:21 - Chuyển sang xử lý trường Age có thể NULL trong Input DTO
21:51 - Loại bỏ Validation tag `require` cho trường Age
22:04 - Test gửi request không có trường Age
22:07 - Gặp lỗi Validation `gt=0` cho trường Age
22:17 - Đặt Thử thách cho người xem: Tìm cách xử lý Validation cho trường Age nullable

Комментарии

Информация по комментариям в разработке

Похожие видео

  • О нас
  • Контакты
  • Отказ от ответственности - Disclaimer
  • Условия использования сайта - TOS
  • Политика конфиденциальности

video2dn Copyright © 2023 - 2025

Контакты для правообладателей [email protected]