Mysql NodeJS
Cơ sở dữ liệu NoSQL khá phổ biến đối với các nhà phát triển Node, với MongoDB (chữ “M” trong ngăn xếp MEAN) dẫn đầu nhóm. Tuy nhiên, khi bắt đầu một dự án Node mới, bạn không nên chỉ chấp nhận Mongo làm lựa chọn mặc định. Thay vào đó, loại cơ sở dữ liệu bạn chọn sẽ phụ thuộc vào yêu cầu của dự án của bạn. Ví dụ: nếu bạn cần tạo bảng động hoặc chèn thời gian thực, thì giải pháp NoQuery là cách tốt nhất. Mặt khác, nếu dự án của bạn xử lý các truy vấn và giao dịch phức tạp, thì cơ sở dữ liệu SQL sẽ có ý nghĩa hơn nhiều Show
Trong hướng dẫn này, chúng ta sẽ xem xét cách bắt đầu với mô-đun mysql — một Node. js cho MySQL, được viết bằng JavaScript. Tôi sẽ giải thích cách sử dụng mô-đun để kết nối với cơ sở dữ liệu MySQL và thực hiện các thao tác CRUD thông thường, trước khi xem các thủ tục được lưu trữ và thoát đầu vào của người dùng Bài viết phổ biến này đã được cập nhật vào năm 2020 để phản ánh các phương pháp hiện tại để sử dụng MySQL với Node. js. Để biết thêm về MySQL, hãy đọc Khởi động MySQL Bắt đầu nhanh. Cách sử dụng MySQL trong nútNếu bạn đến đây để tìm kiếm một cách nhanh chóng để bắt đầu và chạy với MySQL trong Node, thì chúng tôi đã hỗ trợ bạn Dưới đây là cách sử dụng MySQL trong Node theo năm bước đơn giản
Cài đặt Mô-đun mysqlBây giờ chúng ta hãy xem xét kỹ hơn từng bước đó
Trước hết, chúng tôi đang sử dụng dòng lệnh để tạo một thư mục mới và điều hướng đến nó. Sau đó, chúng tôi đang tạo tệp 3 bằng lệnh 4. Cờ 00 có nghĩa là npm sẽ sử dụng giá trị mặc định mà không trải qua quá trình tương tácBước này cũng giả định rằng bạn đã cài đặt Node và npm trên hệ thống của mình. Nếu đây không phải là trường hợp, hãy xem bài viết SitePoint này để tìm hiểu cách thực hiện điều đó. Cài đặt nhiều phiên bản nút. js sử dụng nvm Sau đó, chúng tôi đang cài đặt mô-đun mysql từ npm và lưu nó dưới dạng phần phụ thuộc của dự án. Các phần phụ thuộc của dự án (trái ngược với các phần phụ thuộc của nhà phát triển) là những gói cần thiết để ứng dụng chạy. Bạn có thể đọc thêm về sự khác biệt giữa hai ở đây Nếu bạn cần trợ giúp thêm về cách sử dụng npm, hãy nhớ xem hướng dẫn này hoặc hỏi trong diễn đàn của chúng tôi Bắt đầuTrước khi chúng tôi bắt đầu kết nối với cơ sở dữ liệu, điều quan trọng là bạn đã cài đặt và định cấu hình MySQL trên máy của mình. Nếu đây không phải là trường hợp, vui lòng tham khảo hướng dẫn cài đặt trên trang chủ của họ Việc tiếp theo chúng ta cần làm là tạo cơ sở dữ liệu và bảng cơ sở dữ liệu để làm việc với. Bạn có thể thực hiện việc này bằng 01 và một bảng có tên là 02. Đây là kết xuất cơ sở dữ liệu để bạn có thể thiết lập và chạy nhanh nếu muốn theo dõi. 3Kết nối với cơ sở dữ liệuBây giờ, hãy tạo một tệp có tên 6 trong thư mục 04 của chúng tôi và xem cách kết nối với MySQL từ Node. js
Bây giờ hãy mở một thiết bị đầu cuối và nhập 7. Khi kết nối được thiết lập thành công, bạn sẽ có thể thấy thông báo “Đã thiết lập kết nối” trong bảng điều khiển. Nếu xảy ra sự cố (ví dụ: bạn nhập sai mật khẩu), một cuộc gọi lại sẽ được kích hoạt, cuộc gọi lại này được chuyển qua một phiên bản của đối tượng Lỗi JavaScript (_______106). Hãy thử ghi nhật ký này vào bảng điều khiển để xem nó chứa thông tin hữu ích bổ sung nàoSử dụng gật đầu để xem các tệp để thay đổiChạy 7 bằng tay mỗi khi chúng tôi thực hiện thay đổi đối với mã của mình sẽ hơi tẻ nhạt, vì vậy hãy tự động hóa việc đó. Phần này không cần thiết phải làm theo cùng với phần còn lại của hướng dẫn, nhưng chắc chắn sẽ giúp bạn tiết kiệm một số thao tác gõ phímHãy bắt đầu bằng cách cài đặt gói gật đầu. Đây là công cụ tự động khởi động lại ứng dụng Node khi phát hiện thay đổi tệp trong thư mục 0Bây giờ hãy chạy 08 và thay đổi thành 6. gật đầu sẽ phát hiện thay đổi và khởi động lại ứng dụngGhi chú. chúng tôi đang chạy gật đầu trực tiếp từ thư mục 30. Bạn cũng có thể cài đặt nó trên toàn cầu hoặc tạo tập lệnh npm để khởi động nóThực hiện truy vấnĐọcBây giờ bạn đã biết cách thiết lập kết nối tới cơ sở dữ liệu MySQL từ Node. js, hãy xem cách thực thi các truy vấn SQL. Chúng tôi sẽ bắt đầu bằng cách chỉ định tên cơ sở dữ liệu ( 01) trong lệnh 32 3Sau khi kết nối được thiết lập, chúng tôi sẽ sử dụng biến 33 để thực hiện truy vấn đối với bảng cơ sở dữ liệu 02 9Khi bạn chạy 6 (bằng cách sử dụng gật đầu hoặc bằng cách nhập 7 vào thiết bị đầu cuối của bạn), bạn sẽ có thể xem dữ liệu được trả về từ cơ sở dữ liệu được ghi vào thiết bị đầu cuối 2Dữ liệu được trả về từ cơ sở dữ liệu MySQL có thể được phân tích cú pháp đơn giản bằng cách lặp qua đối tượng 37 4Điều này mang lại cho bạn những điều sau đây 5TạoBạn có thể thực hiện truy vấn chèn đối với cơ sở dữ liệu, như vậy 0Lưu ý cách chúng tôi có thể lấy ID của bản ghi được chèn bằng tham số gọi lại Đang cập nhậtTương tự, khi thực hiện truy vấn cập nhật, số hàng bị ảnh hưởng có thể được truy xuất bằng cách sử dụng 38 1phá hoạiĐiều tương tự cũng xảy ra với truy vấn xóa 2Sử dụng nâng caoTôi muốn kết thúc bằng cách xem mô-đun mysql xử lý các thủ tục được lưu trữ và thoát đầu vào của người dùng như thế nào thủ tục lưu trữNói một cách đơn giản, thủ tục lưu sẵn là mã SQL được chuẩn bị sẵn mà bạn có thể lưu vào cơ sở dữ liệu để có thể dễ dàng sử dụng lại. Nếu bạn cần xem lại các thủ tục được lưu trữ, hãy xem hướng dẫn này Hãy tạo một thủ tục được lưu trữ cho cơ sở dữ liệu 01 của chúng tôi để tìm nạp tất cả các chi tiết về tác giả. Chúng tôi sẽ gọi nó là 90. Để làm điều này, bạn sẽ cần một số loại giao diện cho cơ sở dữ liệu. Tôi đang sử dụng Adminer. Chạy truy vấn sau đối với cơ sở dữ liệu 01, đảm bảo rằng người dùng của bạn có quyền quản trị trên máy chủ MySQL 3Điều này sẽ tạo và lưu trữ thủ tục trong cơ sở dữ liệu 92 trong bảng 93Ghi chú. nếu cú pháp dấu phân cách có vẻ lạ đối với bạn, nó sẽ được giải thích tại đây Tiếp theo, thiết lập kết nối và sử dụng đối tượng kết nối để gọi thủ tục được lưu trữ như được hiển thị 4Lưu các thay đổi và chạy tệp. Khi nó được thực thi, bạn sẽ có thể xem dữ liệu được trả về từ cơ sở dữ liệu 5Cùng với dữ liệu, nó trả về một số thông tin bổ sung, chẳng hạn như số hàng bị ảnh hưởng, 94, v.v. Bạn cần lặp lại chỉ mục thứ 0 của dữ liệu được trả về để tách chi tiết nhân viên khỏi phần còn lại của thông tin 6Điều này mang lại cho bạn những điều sau đây 7Bây giờ, hãy xem xét một thủ tục được lưu trữ yêu cầu tham số đầu vào 8Chúng ta có thể truyền tham số đầu vào trong khi thực hiện cuộc gọi đến thủ tục được lưu trữ 9Điều này mang lại cho bạn những điều sau đây 30Hầu hết khi chúng tôi cố gắng chèn một bản ghi vào cơ sở dữ liệu, chúng tôi cần ID được chèn lần cuối được trả về dưới dạng tham số out. Xem xét thủ tục lưu trữ chèn sau đây với tham số out 31Để thực hiện lời gọi thủ tục với tham số out, trước tiên chúng ta cần kích hoạt nhiều lời gọi trong khi tạo kết nối. Vì vậy, hãy sửa đổi kết nối bằng cách đặt thực thi nhiều câu lệnh thành 95 32Tiếp theo, khi gọi thủ tục, hãy đặt tham số out và truyền vào 33Như đã thấy trong đoạn mã trên, chúng tôi đã đặt một tham số 96 out và chuyển nó trong khi thực hiện cuộc gọi đến thủ tục được lưu trữ. Khi cuộc gọi đã được thực hiện, chúng ta cần chọn tham số out để truy cập ID được trả vềChạy 6. Khi thực thi thành công, bạn sẽ có thể thấy tham số đã chọn cùng với nhiều thông tin khác. 98 sẽ cấp cho bạn quyền truy cập vào tham số đã chọn 34Ghi chú. Để xóa một thủ tục đã lưu trữ, bạn cần chạy lệnh 99 đối với cơ sở dữ liệu mà bạn đã tạo cho nóThoát đầu vào của người dùngĐể tránh các cuộc tấn công SQL Injection, bạn phải luôn thoát bất kỳ dữ liệu nào bạn nhận được từ người dùng trước khi sử dụng nó trong một truy vấn SQL. Hãy chứng minh tại sao 35Điều này dường như đủ vô hại và thậm chí trả về kết quả chính xác 36Tuy nhiên, hãy thử thay đổi 20 thành 37Chúng tôi đột nhiên có quyền truy cập vào toàn bộ tập dữ liệu. Bây giờ thay đổi nó thành cái này 38Bây giờ chúng ta đang gặp rắc rối Tin tốt là sự giúp đỡ luôn sẵn sàng. Bạn chỉ cần sử dụng mysql. phương pháp thoát hiểm 39Bạn cũng có thể sử dụng một trình giữ chỗ có dấu chấm hỏi, như chúng tôi đã làm trong các ví dụ ở đầu bài viết 0Tại sao không chỉ sử dụng ORM?Trước khi chúng ta đi vào những ưu và nhược điểm của phương pháp này, hãy dành một chút thời gian để xem ORM là gì. Phần sau được lấy từ câu trả lời trên Stack Overflow
Vì vậy, điều này có nghĩa là bạn viết logic cơ sở dữ liệu của mình bằng ngôn ngữ dành riêng cho miền của ORM, trái ngược với cách tiếp cận thông thường mà chúng tôi đã thực hiện cho đến nay. Để cung cấp cho bạn ý tưởng về điều này có thể trông như thế nào, đây là một ví dụ sử dụng Sequelize, truy vấn cơ sở dữ liệu cho tất cả các tác giả và ghi chúng vào bảng điều khiển 1Việc sử dụng ORM có ý nghĩa với bạn hay không sẽ phụ thuộc rất nhiều vào những gì bạn đang làm và với ai. Một mặt, ORMS có xu hướng làm cho các nhà phát triển làm việc hiệu quả hơn, một phần bằng cách trừu tượng hóa một phần lớn SQL để không phải tất cả mọi người trong nhóm đều cần biết cách viết các truy vấn cụ thể cho cơ sở dữ liệu siêu hiệu quả. Nó cũng dễ dàng chuyển sang phần mềm cơ sở dữ liệu khác, bởi vì bạn đang phát triển theo cách trừu tượng Tuy nhiên, mặt khác, có thể viết một số SQL thực sự lộn xộn và không hiệu quả do không hiểu cách ORM thực hiện những gì nó làm. Hiệu suất cũng là một vấn đề ở chỗ việc tối ưu hóa các truy vấn không phải thông qua ORM sẽ dễ dàng hơn nhiều Dù bạn đi theo con đường nào là tùy thuộc vào bạn, nhưng nếu đây là quyết định mà bạn đang trong quá trình đưa ra, hãy xem chủ đề Stack Overflow này. Tại sao bạn nên sử dụng ORM?. Ngoài ra, hãy xem bài đăng này trên SitePoint. 3 ORM JavaScript có thể bạn chưa biết Sự kết luậnTrong hướng dẫn này, chúng tôi đã cài đặt ứng dụng khách mysql cho Node. js và cấu hình nó để kết nối với cơ sở dữ liệu. Chúng ta cũng đã thấy cách thực hiện các thao tác CRUD, làm việc với các câu lệnh đã chuẩn bị sẵn và thoát khỏi đầu vào của người dùng để giảm thiểu các cuộc tấn công SQL injection. Chưa hết, chúng tôi mới chỉ vạch ra bề nổi của những gì ứng dụng khách mysql cung cấp. Để biết thêm thông tin chi tiết, tôi khuyên bạn nên đọc tài liệu chính thức Và xin lưu ý rằng mô-đun mysql không phải là chương trình duy nhất trong thị trấn. Ngoài ra còn có các tùy chọn khác, chẳng hạn như nút phổ biến-mysql2 MySQL có thể được sử dụng với nút js không?Khi bạn đã thiết lập và chạy MySQL trên máy tính của mình, bạn có thể truy cập nó bằng cách sử dụng Nút. js . Để 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.
MySQL NodeJ là gì?Nút. js và MySQL là một số ràng buộc cần thiết cho mọi ứng dụng web . MySQL là một trong những cơ sở dữ liệu nguồn mở phổ biến nhất trên thế giới và cũng hiệu quả. Hầu như mọi ngôn ngữ lập trình phổ biến như Java và PHP đều cung cấp trình điều khiển để truy cập và thực hiện các thao tác với MySQL.
NodeJs có tốt cho cơ sở dữ liệu không?Nút. js hỗ trợ tất cả các loại cơ sở dữ liệu bất kể đó là cơ sở dữ liệu quan hệ hay cơ sở dữ liệu NoSQL . Tuy nhiên, cơ sở dữ liệu NoSQL như MongoDb phù hợp nhất với Node. js.
Cái nào tốt hơn với nút js MySQL hoặc MongoDB?Nếu bạn có dữ liệu quan hệ thì MySQL là lựa chọn tốt hơn MongoDB . Đối với những thứ đơn giản, MongoDB vẫn ổn, nhưng khi cố gắng liên kết nhiều dữ liệu quan hệ lại với nhau thì MongoDB là một cơn ác mộng. |