Ví dụ nút Mysql2
Để truy cập cơ sở dữ liệu MySQL bằng Node. js, bạn cần có trình điều khiển MySQL. Hướng dẫn này sẽ sử dụng mô-đun "mysql", được tải xuống từ NPM Show
Để tải xuống và cài đặt mô-đun "mysql", hãy mở Command Terminal và thực hiện như sau C. \Users\Tên của bạn>npm cài đặt mysql Bây giờ bạn đã tải xuống và cài đặt trình điều khiển cơ sở dữ liệu mysql Nút. js có thể sử dụng mô-đun này để thao tác với cơ sở dữ liệu MySQL var mysql = yêu cầu('mysql'); Tạo kết nốiBắt đầu bằng cách tạo kết nối đến cơ sở dữ liệu Sử dụng tên người dùng và mật khẩu từ cơ sở dữ liệu MySQL của bạn demo_db_connection. js var mysql = yêu cầu('mysql'); var con = mysql. createConnection({ con. connect(function(err) { Lưu mã ở trên vào tệp có tên "demo_db_connection. js" và chạy tệp Chạy "demo_db_connection. js" C. \Users\Tên của bạn>nút demo_db_connection. js Cái nào sẽ cho bạn kết quả này Bây giờ bạn có thể bắt đầu truy vấn cơ sở dữ liệu bằng các câu lệnh SQL Truy vấn cơ sở dữ liệuSử dụng các câu lệnh SQL để đọc từ (hoặc ghi vào) cơ sở dữ liệu MySQL. Điều này còn được gọi là "truy vấn" cơ sở dữ liệu Nút. js và MySQL kết hợp rất tốt với nhau. Trong nút này. js MySQL, chúng ta sẽ xem xét cách bắt đầu từng bước với cả hai để xây dựng API REST cho báo giá bằng cách sử dụng Express js Mục lụcTại sao nút. hướng dẫn js MySQLNút. js đã được kết hợp phổ biến với cơ sở dữ liệu NoSQL, đặc biệt là Mongo DB. Nếu bạn di chuyển một codebase cũ hơn sang Node. js, bạn sẽ không có tùy chọn để chọn cơ sở dữ liệu. Hầu hết các hệ thống cũ hơn hoặc thậm chí các hệ thống mới đều sử dụng hệ thống quản lý cơ sở dữ liệu quan hệ như MySQL. Điều này dẫn đến nhu cầu về một Node từng bước. hướng dẫn js MySQL Nếu bạn đang bắt đầu một dự án mới, đừng mù quáng sử dụng NoSQL như Mongodb. Video vui nhộn nhưng chính xác này từ năm 2010 về MySQL vs Mongo vẫn có ý nghĩa hoàn hảo
Điều kiện tiên quyết cho nút. hướng dẫn js MySQL
Nút. các bước hướng dẫn js MySQLChúng tôi sẽ xây dựng một API REST đơn giản với Express js có thể đưa ra các trích dẫn. Trước khi đi sâu hơn vào các bước, tôi thực sự khuyên bạn nên xem lại REST (Chuyển trạng thái đại diện). Tốt nhất bạn nên đọc các động từ REST và chạy một số lệnh cURL để POST API Cho rằng bạn có Nút. js đang chạy (trên máy hoặc với Docker), chúng ta có thể bắt đầu với việc thiết lập Express trước Thiết lập Express js cho Node. hướng dẫn js MySQLĐể thiết lập express, chúng ta sẽ sử dụng express-generator. Bạn có thể tạo một ứng dụng js nhanh mà không cần bất kỳ công cụ xem nào cho Nút này. js MySQL hướng dẫn với lệnh sau
Để nhanh chóng kiểm tra đầu ra, hãy thực hiện như sau.
Bạn sẽ thấy đầu ra bên dưới trên trình duyệt của mình Có thể thấy ứng dụng express cơ bản đã tạo trong yêu cầu kéo này Xóa thư mục chungVì chúng tôi đang xây dựng API REST để trích dẫn trong Nút này. js với Express chúng ta sẽ xóa thư mục chung. Chúng tôi không cần bất kỳ CSS hoặc js nào cho mục đích của hướng dẫn này vì chúng tôi sẽ xử lý JSON Để xóa thư mục chung, hãy chạy lệnh sau
Xóa các tuyến đường hiện có và tạo một tuyến đường mới cho báo giáTại thời điểm này, chúng tôi sẽ thực hiện một số thay đổi đối với các tuyến đường. Chúng tôi sẽ xóa tệp 4 mà chúng tôi không cần nữa. Sau đó, chúng tôi sẽ thêm tệp 5 giống như bên dưới
Hiện tại, 6 sẽ cung cấp đầu ra tĩnh chỉ có một trích dẫn như hình trên. Chúng tôi sẽ làm cho nó năng động trong các bước tiếp theoSau đó, chúng tôi sẽ cần liên kết tuyến trích dẫn với tệp 7. Sau khi liên kết tệp 7 của tôi trông như bên dưới
Một điều nữa cần làm là thay đổi tệp 9 để hiển thị đầu ra JSON thay cho hiển thị dạng xem/mẫu HTML. Sau khi thay đổi này, tệp 9 trông như bên dưới 2Tôi cũng đã thay đổi tất cả 1 thành 2 vì nó hợp lý hơn. Nếu bạn muốn xem tất cả các thay đổi trong một lần, nó có sẵn trong yêu cầu kéo nàyBạn có thể xem những thay đổi cuối cùng bằng cách chạy đoạn mã sau trên dòng lệnh của mình 5Bạn sẽ thấy bên dưới khi bạn nhấn 3 trên trình duyệt của mìnhThiết lập MySQL với bảng báo giáTại thời điểm này, đối với Nút này. js MySQL, chúng ta sẽ tạo một Quotes API. Người tiêu dùng cũng có thể lấy báo giá và thêm báo giá mới. Để kích hoạt tính năng này, chúng tôi sẽ sử dụng một bảng duy nhất có tên là 4, cấu trúc của nó được đưa ra bên dưới 8Đây là một bảng đơn giản với 5 cột. Cái đầu tiên là 5 khóa chính được tăng tự động. Sau đó là 4 và 7. Cả hai cột này đều là varcharSau đó là 8 và 9. Cả hai cột ngày đều có giá trị mặc định là 0 nên chúng tôi không cần gửi các giá trị này từ mã. Cũng không phải vậy, updated_at sẽ được cập nhật tự động khi hàng được cập nhật vì điều này. 1Bạn có thể chạy phần trên để tạo bảng 4, để điền vào một số trích dẫn hay liên quan đến lập trình, hãy chạy câu truy vấn SQL chèn sau 7Truy vấn trên sẽ thêm 15 dấu ngoặc kép vào bảng, đây sẽ là điểm khởi đầu tốt cho API nhận dấu ngoặc kép. Lưu ý rằng id 2 bị thiếu và điều này được thực hiện có mục đích. Bạn cũng có thể xem tệp init cơ sở dữ liệu tại đây Nối dây nút. js với MySQLỞ giai đoạn này, chúng tôi sẽ kết nối với MySQL từ Node. ứng dụng js express. Để làm nhiệm vụ này, chúng ta sẽ sử dụng thư viện Mysql2. Nếu bạn đang hỏi tại sao không phải là Mysql mặc định. Đó là bởi vì 2 lý do chính
Nếu bạn muốn so sánh trực tiếp hai thư viện này, vui lòng truy cập so sánh npm Cài đặt mysql2 trong ứng dụng cấp tốcĐể bắt đầu truy vấn cơ sở dữ liệu MySQL bằng Nodejs, đầu tiên chúng ta sẽ cài đặt thư viện 3 với npm 9Lệnh trên sẽ cài đặt thư viện 3 và cũng thêm nó vào tệp 5. Bước tiếp theo là cập nhật tuyến đường 6 để hiển thị các trích dẫn từ cơ sở dữ liệu thay vì trích dẫn tĩnhHiển thị báo giá - Nhận APIKhi bạn nhấn 7 sau khi khởi động ứng dụng express js, bạn có thể thấy nội dung như bên dưới 0Hãy lấy dữ liệu tương tự từ bảng cơ sở dữ liệu của chúng tôi 4 và ứng biến thêm về nóĐể hiển thị nhiều trích dẫn, chúng tôi sẽ thay đổi phản hồi tĩnh bằng phản hồi động. Để làm được điều đó, chúng ta sẽ cần kết nối với cơ sở dữ liệu. Hãy tạo một tệp cấu hình có thông tin đăng nhập cơ sở dữ liệu như bên dưới có tên là 9 ở thư mục gốc của dự án (ngoài ứng dụng. js) 1Chúng tôi đã tạo một tệp 9 có thông tin đăng nhập cho cơ sở dữ liệu được lấy từ biến môi trường. Nếu các biến môi trường không được đặt, chúng tôi sử dụng các giá trị dự phòngSau đó, tạo tệp 21 trong thư mục 22 trông giống như sau 2Trong trình bao bọc DB đơn giản này, chúng tôi tạo một nhóm kết nối cho MySQL. Vì cấu hình của chúng tôi có 23 trên 2 nên nó sẽ tạo tối đa 2 kết nối tới cơ sở dữ liệu. Sau đó, có một phương thức 24 đơn giản được đưa ra có thể chạy truy vấn SQL với các tham số đã choSau đó, tạo một tệp 25 với nội dung sau 3Cho đến thời điểm này, đây là một tệp rất đơn giản bao gồm dịch vụ 26 được tạo ở trên. Sau đó, có một hàm 27 hiển thị với mô-đun. xuất khẩu. Coi chừng điều này sẽ truy vấn tất cả các bản ghi trên cơ sở dữ liệu sẽ là 15 ở giai đoạn này. Chúng tôi sẽ làm cho nó được phân trang trong bước tiếp theoDo đó, chúng tôi sẽ kết nối chức năng 27 trong 25 với tuyến đường 6 trong tệp 51 như bên dưới 4Tôi nghĩ đây là thời điểm thích hợp để cài đặt 52, tôi khuyên bạn nên cài đặt nó trên toàn cầu như bên dưới 5Với gật đầu, bạn có thể khởi động lại Node. js trên mỗi lần thay đổi mã, điều này rất hữu ích khi phát triển. Bạn có thể chạy ứng dụng ngay bây giờ với 52 như bên dưới để kiểm tra kết quả trên trình duyệt 6Khi bạn nhấn 7 trên trình duyệt, bạn sẽ thấy một kết quả tương tự hoặc nhiều 55 trên trình duyệtNếu bạn quay lại và kiểm tra bảng điều khiển nơi bạn đã chạy 52, bạn sẽ có thể thấy nội dung như bên dướiNếu bạn thay đổi bất kỳ tệp nào, máy chủ sẽ khởi động lại do gật đầu. Trong bước tiếp theo của Nút này. js Hướng dẫn MySQL với express js, chúng ta sẽ phân trang kết quả 10 trích dẫn trên trang. Nếu bạn muốn xem các thay đổi về mã mà chúng tôi đã thực hiện để lấy các trích dẫn từ cơ sở dữ liệu thì đây là yêu cầu kéo Phân trang các trích dẫn cho Node. hướng dẫn js MySQLTại thời điểm này, chúng tôi sẽ bắt đầu phân trang các trích dẫn 10 trích dẫn trên mỗi trang. Đã được đưa vào tệp 57 ở dòng số. 14 là 58 chúng tôi sẽ sử dụng nó ngay bây giờChúng tôi sẽ thêm một 59 vào thư mục gốc trông giống như bên dưới 7Chúng tôi sẽ sử dụng người trợ giúp này. js để tính phần bù. Hàm khác sẽ trả về một mảng trống nếu biến rows trống, ngược lại, nó sẽ trả về các hàng Tiếp theo, chúng tôi sẽ cập nhật truy vấn để nhận báo giá trong dịch vụ 25. Dịch vụ báo giá thay đổi trông giống như dưới đây 8Sự khác biệt chính của tính năng phân trang so với dịch vụ trích dẫn cũ hơn là truy vấn đã bù đắp và giới hạn được chuyển cho nó. Lưu ý rằng chúng tôi đang sử dụng một câu lệnh đã chuẩn bị để đảm bảo an toàn cho truy vấn khỏi SQL injection. Bạn có thể đọc thêm về ngăn chặn SQL injection với các câu lệnh đã chuẩn bị trong câu trả lời stackoverflow này Tệp khác được thay đổi để có tính năng phân trang là 51. Các trích dẫn mới. lộ trình js bây giờ trông giống như bên dưới 9Thay đổi duy nhất ở đây là chúng ta chuyển tham số truy vấn 82 cho hàm 27. Điều này sẽ cho phép phân trang như 84, v.v.Nếu bạn chạy ứng dụng và nhấn vào trình duyệt với 85, bạn sẽ thấy 5 trích dẫn như bên dướiVì vậy, những gì đã xảy ra ở đây, thay đổi chính là cách chúng tôi xây dựng truy vấn 86. Tùy thuộc vào số trang, chúng tôi tính toán độ lệch và chuyển một truy vấn khác
Như bạn thấy, phép tính bù giúp bạn có thể nhận được tập hợp 10 dấu ngoặc kép tiếp theo trong đó 10 là số không. các mục chúng tôi muốn liệt kê theo cấu hình của chúng tôi. Đây có thể là một thay đổi lớn cần hiểu ngay trong một lần, vui lòng xem yêu cầu kéo này để biết tất cả mã đã thay đổi để tính năng phân trang đi vào hoạt động Bước tiếp theoKhi bạn có một API GET cơ bản và đang chạy, bạn có thể thêm nhiều tính năng hơn vào nó như
Tôi sẽ để bạn quyết định về những thứ khác mà bạn muốn xây dựng dựa trên điểm cuối API GET báo giá REST mới được tạo. Bước tiếp theo là tạo API POST để tạo báo giá mới Lưu báo giá mới - POST API cho Node. hướng dẫn js MySQLĐể tạo báo giá mới, chúng tôi sẽ cần API bài đăng. Trước khi bắt tay vào việc, hãy làm rõ các giả định của chúng ta
Hãy bắt đầu bẻ khóa mã cho API báo giá POST. Điều đầu tiên là chúng ta sẽ thêm đường dẫn báo giá POST vào tệp 51 ngay phía trên dòng 73 0Sau đó, chúng tôi sẽ thêm các hàm 74 và 75 trong tệp dịch vụ 25 và hiển thị 75 trong mô-đun. xuất khẩu như dưới đây 1Tôi biết việc xác thực còn hơi nguyên thủy nhưng hiện tại nó đã hoạt động. Cách tốt hơn để làm điều đó là sử dụng Joi hoặc thư viện xác thực tương tự. Tiếp theo, hãy thêm một trình xử lý lỗi mới để hiển thị xác thực của chúng tôi hoặc các lỗi khác dưới dạng phản hồi JSON trong tệp 78 như bên dưới 2Đảm bảo đặt nó ngay phía trên dòng 79 để chúng được thực thi sau các tuyến đường. Bây giờ bạn có thể khởi động ứng dụng của mình và thử các lệnh cURL bên dưới 3Dưới đây là đầu ra của cả hai lệnh cURL Tùy thuộc vào cấu hình và bản ghi cơ sở dữ liệu, bạn có thể gặp lỗi 90. Chỉ cần thay đổi trích dẫn thành một cái gì đó khác và thử. Mã thay đổi cho API trích dẫn POST nằm trong yêu cầu kéo nàyBạn có thể tìm thấy rất nhiều trích dẫn để thử ở đây Vậy là bạn đã có API RESTful cơ bản dành cho báo giá có thể tạo báo giá mới với điểm cuối POST. Có một điểm cuối GET để lấy dấu ngoặc kép với phân trang Nếu bạn muốn thử một DB được lưu trữ, bạn có thể kiểm tra Nút này. hướng dẫn js HarperDB TLDR;Vì tất cả mã nằm trong kho lưu trữ Github công khai, bạn có thể bắt đầu ngay lập tức bằng cách chạy các lệnh sau
Bạn có thể xem mã và thử xem toàn bộ mọi thứ được ghép lại với nhau như thế nào trong Nút này. js MySQL hướng dẫn với Express Js để có dấu ngoặc kép REST API. API này có thể hoạt động như một cơ sở tốt cho một Nút. js vi dịch vụ Bạn có thể cập bến ứng dụng API REST theo hướng dẫn từng bước này. Sau khi ứng dụng đó được cập nhật, bạn có thể dễ dàng lưu trữ ứng dụng đó trên một thứ gì đó như Google Cloud Run. Nếu bạn muốn bắt đầu thử nghiệm nhanh chóng mà không cần Docker, tôi khuyên bạn nên sử dụng Glitch. Bạn có thể thử 3 Nút. tùy chọn lưu trữ miễn phí js nữa Phần kết luậnTạo API REST bằng Node. js và MySQL không quá khó
|