Mysql có tốt cho nodejs không?

Nút sẽ không tăng hiệu suất ứng dụng của bạn một cách kỳ diệu. Nó không được thiết kế cho mục đích đó. Có, nếu bạn có cơ sở dữ liệu MySQL hiện có mà bạn cần tương tác, đầy mã kế thừa, nó sẽ hoạt động tốt để chuyển đổi sang Node. Mặt khác, không, sử dụng đi văng/mongo/Redis/riak/Cassandra/etc

Chia sẻ qua

Chia sẻ trên TwitterChia sẻ trên FacebookChia sẻ trên node connect.js Connected to the MySQL server

  • Bước 5. Sau khi thực hiện lệnh trên, nếu bạn nhận được thông báo “đã kết nối với Máy chủ MySQL” thì có nghĩa là bạn đã kết nối thành công với Máy chủ cơ sở dữ liệu MySQL từ bên trong ứng dụng Nodejs.

    Bây giờ, nếu cơ sở dữ liệu todoapps không còn tồn tại trong máy chủ cơ sở dữ liệu của bạn và bạn vẫn cố gắng liên kết với nó, thì đây là thông báo lỗi mà bạn sẽ nhận được.
> node connect.js
error: ER_BAD_DB_ERROR: Unknown database 'todoapps'
  • Bước 6. Một điểm cần lưu ý ở đây là mọi phương thức bạn chọn để gọi trên đối tượng kết nối đều được xếp hàng và thực hiện theo trình tự

Tích hợp MySQL của Nodejs. Đóng kết nối cơ sở dữ liệu

  • Bước 1. Bây giờ bạn đã định cấu hình kết nối cơ sở dữ liệu, bạn cũng cần đóng nó. Đối với điều này, bạn cần gọi phương thức end[] có trên đối tượng kết nối. Phương thức end[] đảm bảo rằng phần còn lại của truy vấn luôn được thực hiện trước khi đóng kết nối cơ sở dữ liệu.

    Đây là đoạn mã cho cùng.
connection.end[function[err] {
  if [err] {
    return console.log['error:' + err.message];
  }
  console.log['Close the database connection.'];
}];
  • Bước 2. Tuy nhiên, nếu bạn chọn buộc đóng kết nối ngay lập tức, bạn có thể chọn phương thức hủy[]. Phương pháp này đảm bảo rằng sẽ không có thêm sự kiện hoặc cuộc gọi lại nào được kích hoạt cho kết nối.

    Đây là đoạn mã mô tả cách bạn có thể tận dụng phương thức destroy[].
________số 8
  • Bước 3. Như đã nêu trước đó, phương thức destroy[] rõ ràng không có đối số gọi lại trái ngược với phương thức end[]

Tích hợp MySQL của Nodejs. Kết nối hồ bơi

  • Bước 1. Để tổng hợp các kết nối cho Tích hợp MySQL của Nodejs, bạn có thể tận dụng trình điều khiển MySQL nội bộ cho mô-đun Nodejs vì nó đi kèm với tính năng tổng hợp kết nối tích hợp. Giả sử, nếu bạn muốn tạo nhóm kết nối có 7 kết nối thì bạn có thể sử dụng đoạn mã sau
var pool = mysql.createPool[{
    connectionLimit: 7,
    host: 'localhost',
    user: 'root',
    password: '', 
    database: 'todoapp'
}];
  • Bước 2. Bây giờ, để thiết lập kết nối từ nhóm kết nối, bạn có thể tận dụng phương thức getConnection[] như sau
CREATE DATABASE todoapp;
0
  • Bước 3. Bây giờ, để khôi phục kết nối trở lại nhóm sau khi bạn hoàn thành nó, bạn có thể gọi kết nối. phương thức phát hành []. Theo đó, kết nối có thể được sử dụng trong nhóm bởi người khác.

    Đây là đoạn mã cho cùng.
CREATE DATABASE todoapp;
1
  • Bước 4. Nếu bạn muốn đóng một kết nối và loại bỏ nó khỏi nhóm, bạn có thể sử dụng kết nối. phương thức phá hủy []. Một kết nối mới sẽ được tạo trong nhóm nếu có nhu cầu về nó.

    Một điểm quan trọng cần lưu ý ở đây là nhóm kết nối tạo các kết nối này một cách lười biếng. Chẳng hạn, nếu bạn định cấu hình nhóm kết nối có 7 kết nối nhưng bạn chỉ sử dụng 3 kết nối song song, thì nhóm chỉ tạo 3 kết nối cho bạn. Nếu bạn muốn đóng tất cả các kết nối trong nhóm, bạn có thể sử dụng phương thức end[] của đối tượng nhóm như được đề cập trong lệnh bên dưới.
CREATE DATABASE todoapp;
2

Cách tạo bảng MySQL bằng nút. js?

  • Bước 1. Đầu tiên, bạn cần kết nối với MySQL Database Server. Trong trường hợp này [truy vấn. js], bạn có thể kết nối với cơ sở dữ liệu todoapp và thực hiện câu lệnh CREATE TABLE như sau
CREATE DATABASE todoapp;
3
  • Bước 2. Phương thức query[] chấp nhận một cuộc gọi lại và một câu lệnh SQL. Hàm gọi lại sẽ nhận 3 đối số. lỗi, kết quả và các trường.

    Đây là đoạn mã cho cùng.
CREATE DATABASE todoapp;
4
  • Bước 3. Bây giờ truy vấn của bạn đã được thực thi mà không có bất kỳ lỗi nào, bạn cần kiểm tra xem bảng việc cần làm đã được tạo trong cơ sở dữ liệu được chỉ định của bạn chưa
CREATE DATABASE todoapp;
5
  • Bước 4. Như hiển nhiên từ truy vấn trước, bạn có thể thấy rằng bảng việc cần làm đã được tạo thành công trong cơ sở dữ liệu việc cần làm của bạn

Cách chèn dữ liệu vào bảng MySQL bằng nút. js?

Dưới đây là các khía cạnh khác nhau của Chèn bảng MySQL của Nodejs

  • Chèn bảng MySQL của Nodejs. Chèn một hàng dữ liệu vào bảng MySQL
  • Chèn bảng MySQL của Nodejs. Chèn nhiều hàng trong bảng MySQL

Trước khi chuyển sang phần chèn Bảng MySQL của Nodejs, trước tiên bạn cần kết nối với Cơ sở dữ liệu MySQL. Đối với điều này, bạn có thể sử dụng lại cấu hình. js chứa thông tin Cơ sở dữ liệu MySQL. Đây là những gì cấu hình. tập lệnh js trông giống như

CREATE DATABASE todoapp;
6

Chèn bảng MySQL của Nodejs. Chèn một hàng dữ liệu vào bảng MySQL

  • Bước 1. Bạn có thể sử dụng đoạn mã sau để chèn một hàng dữ liệu đơn lẻ trong Bảng MySQL của mình [todos]
CREATE DATABASE todoapp;
7
  • Bước 2. Bạn có thể thực hiện chèn. js bằng cách thực hiện theo lệnh được đề cập bên dưới
CREATE DATABASE todoapp;
8
  • Bước 3. Tiếp theo, bạn cần kiểm tra dữ liệu từ bảng todos với đoạn mã sau
CREATE DATABASE todoapp;
9

Điều này cho thấy rằng hàng đã được thêm thành công vào bảng của bạn

Chèn bảng MySQL của Nodejs. Chèn nhiều hàng trong bảng MySQL

  • Bước 1. Bạn có thể sử dụng đoạn mã được đề cập bên dưới để chèn nhiều hàng vào bảng todos của mình
let mysql = require['mysql'];
0
  • Bước 2. Một điểm cần lưu ý ở đây là bạn chỉ sử dụng một dấu chấm hỏi [?] trong câu lệnh INSERT. Ngoài ra, dữ liệu nhiều hàng là một mảng các mảng.

    Bạn cũng có thể lấy số lượng hàng mà bạn đã chèn bằng cách tận dụng thuộc tính 'afferedRows' trong đối tượng kết quả.

    Đây là đoạn mã cho cùng.
let mysql = require['mysql'];
1

Điều này cho thấy rằng 2 hàng đã được chèn thành công trong bảng MySQL của bạn

Cách truy vấn cơ sở dữ liệu MySQL bằng nút. js?

Dưới đây là các phương pháp khác nhau mà bạn có thể sử dụng để Truy vấn MySQL của Nodejs

  • Truy vấn MySQL của Nodejs. Truy vấn SQL đơn giản
  • Truy vấn MySQL của Nodejs. Tránh SQL injection

Truy vấn MySQL của Nodejs. Truy vấn SQL đơn giản

  • Bước 1. Trong đoạn mã này, bạn sẽ chọn tất cả dữ liệu từ bảng todos trong cơ sở dữ liệu todoapp
let mysql = require['mysql'];
2
  • Bước 2. Sau khi thực hiện câu lệnh đã nói ở trên, bạn có thể chạy lệnh sau
let mysql = require['mysql'];
3

Câu lệnh này sẽ trả về 4 hàng, như mong đợi từ nó

  • Bước 3. Bạn thậm chí có thể chuyển dữ liệu vào truy vấn bằng cách thực hiện chương trình sau chỉ chọn những việc cần làm đã hoàn thành
let mysql = require['mysql'];
4
  • Bước 4. Trong ví dụ này, bạn đã sử dụng dấu chấm hỏi làm giá trị giữ chỗ của trường đã hoàn thành. Khi bạn gọi phương thức query[], bạn đã chuyển một mảng làm đối số thứ hai. Trình giữ chỗ sau đó sẽ được thay thế bằng các giá trị của mảng theo thứ tự như sau
let mysql = require['mysql'];
5

Truy vấn này trả về 2 hàng cùng với cột đã hoàn thành và giá trị 1. Giá trị này phản ánh đúng trong Node. js

Truy vấn MySQL của Nodejs. Tránh SQL injection

  • Bước 1. Giả sử, nếu bạn muốn truy vấn một việc cần làm trên cơ sở id của nó bắt nguồn từ đối số trong dòng lệnh, bạn có thể thực thi đoạn mã sau
let mysql = require['mysql'];
6
  • Bước 2. Bây giờ, giả sử nếu bạn muốn chọn việc cần làm với id 1, bạn có thể sử dụng lệnh sau
let mysql = require['mysql'];
7
  • Bước 3. Tuyên bố thực hiện chính xác. Mặc dù vậy, vẫn còn một vấn đề còn tồn đọng mà người dùng đáng ngờ có thể cố gắng khai thác chương trình bằng cách cung cấp Mã SQL trong đối số.

    Để tránh SQL injection này, bạn có thể tận dụng placeholder [?] như minh họa trong ví dụ trước bước này hoặc bạn có thể tận dụng phương thức escape[] của kết nối hoặc đối tượng mysql như sau.
let mysql = require['mysql'];
8

Cách sửa đổi bảng MySQL bằng nút. js?

  • Bước 1. Bạn có thể sử dụng đoạn mã sau để cập nhật trạng thái của việc cần làm trên cơ sở id được chỉ định
let mysql = require['mysql'];
9
  • Bước 2. Trong ví dụ này, bạn đã tận dụng các trình giữ chỗ trong câu lệnh CẬP NHẬT. Bây giờ, khi bạn thực thi câu lệnh UPDATE bằng cách gọi phương thức query[] trên đối tượng kết nối, bạn cũng chuyển dữ liệu tới câu lệnh UPDATE dưới dạng một mảng.

    Các phần giữ chỗ sẽ được thay thế bằng các giá trị trong mảng dữ liệu theo thứ tự đã chỉ định. Trong trường hợp này, Complete sẽ được đặt thành false và id sẽ được đặt thành 1. Đối số results của hàm gọi lại bao gồm thuộc tính 'afferedRows' mô tả số lượng hàng được cập nhật bởi câu lệnh UPDATE.
  • Bước 3. Tuy nhiên trước khi thực hiện chương trình bạn cần kiểm tra hàng có id 1 trong bảng todos như sau
let connection = mysql.createConnection[{
    host: 'localhost',
    user: 'root',
    password: '',
    database: 'todoapp'
}];
0
  • Bước 4. Bây giờ, khi chạy đoạn mã trong bước đầu tiên, bạn sẽ nhận được kết quả sau
let connection = mysql.createConnection[{
    host: 'localhost',
    user: 'root',
    password: '',
    database: 'todoapp'
}];
1
  • Bước 5. Chương trình này mô tả một thông báo cho bạn biết rằng số hàng bị ảnh hưởng là 1. Bạn cũng có thể kiểm tra nó trong cơ sở dữ liệu bằng đoạn mã sau
let connection = mysql.createConnection[{
    host: 'localhost',
    user: 'root',
    password: '',
    database: 'todoapp'
}];
2

Bạn có thể thấy rõ rằng giá trị trong cột đã hoàn thành đã được hoán đổi thành 0, viết tắt của false bên trong Node. js

Cách xóa dữ liệu khỏi bảng MySQL bằng nút. js?

  • Bước 1. Trong lần xóa này. js, bạn sẽ xóa một hàng trong bảng todos trên cơ sở id của hàng
let connection = mysql.createConnection[{
    host: 'localhost',
    user: 'root',
    password: '',
    database: 'todoapp'
}];
3
  • Bước 2. Đối với ví dụ này, bạn đã tận dụng một trình giữ chỗ trong câu lệnh DELETE. Khi bạn gọi phương thức query[] trên đối tượng kết nối để thực hiện câu lệnh, bạn đã gửi dữ liệu tới câu lệnh DELETE làm đối số thứ hai. Trình giữ chỗ sẽ được hoán đổi bởi giá trị đầu vào, vì vậy id sẽ nhận giá trị 1 khi thực hiện truy vấn như sau
let connection = mysql.createConnection[{
    host: 'localhost',
    user: 'root',
    password: '',
    database: 'todoapp'
}];
4
  • Bước 3. Một điểm cần lưu ý ở đây là nếu bạn có nhiều trình giữ chỗ, bạn sẽ phải chuyển một mảng tới truy vấn để gửi dữ liệu tới câu lệnh SQL. Bây giờ, để lấy số lượng hàng đã bị xóa, bạn có thể lấy thuộc tínhaffedRows của đối số results. Tuy nhiên, trước khi thực hiện chương trình, hãy kiểm tra hàng có id 1 trong bảng todos
let connection = mysql.createConnection[{
    host: 'localhost',
    user: 'root',
    password: '',
    database: 'todoapp'
}];
5
  • Bước 4. Trong lệnh đã nói ở trên, số hàng đã xóa là 1. Bạn thậm chí có thể xác minh nó trong cơ sở dữ liệu bằng cách sử dụng câu lệnh CHỌN như hình bên dưới
let connection = mysql.createConnection[{
    host: 'localhost',
    user: 'root',
    password: '',
    database: 'todoapp'
}];
6

Điều này mô tả rằng hàng có id 1 đã bị xóa khỏi bảng todos

Thưởng. Gọi/Chạy thủ tục lưu trữ MySQL bằng nút. js

  • Bước 1. Đối với quá trình này, trước tiên bạn sẽ tạo thủ tục lưu sẵn filterTodo để truy vấn các hàng từ bảng việc cần làm trên cơ sở giá trị thu được từ trường đã hoàn thành như sau
let connection = mysql.createConnection[{
    host: 'localhost',
    user: 'root',
    password: '',
    database: 'todoapp'
}];
7
  • Bước 2. Thủ tục được lưu trữ được tạo ở trên sẽ trả về các hàng trong bảng todos trên cơ sở đối số done. Vì vậy, nếu đối số done là true, câu lệnh sẽ trả về tất cả các todo đã hoàn thành. Nếu đối số done là sai, câu lệnh này sẽ trả về tất cả các việc cần làm chưa hoàn thành
  • Bước 3. Kiến thức phổ biến là bạn có thể gọi một thủ tục được lưu trữ trong MySQL bằng cách tận dụng câu lệnh CALL. Chẳng hạn, nếu bạn muốn gọi thủ tục được lưu trữ 'filterTodo', bạn có thể thực hiện đoạn mã sau
let connection = mysql.createConnection[{
    host: 'localhost',
    user: 'root',
    password: '',
    database: 'todoapp'
}];
8
  • Bước 4. Câu lệnh nói trên sẽ trả về tập kết quả sau
let connection = mysql.createConnection[{
    host: 'localhost',
    user: 'root',
    password: '',
    database: 'todoapp'
}];
9
  • Bước 5. Proc được lưu trữ. js được đề cập bên dưới gọi thủ tục được lưu trữ 'filterTodo' và trả lại cho bạn tập kết quả
connection.connect[function[err] {
  if [err] {
    return console.error['error: ' + err.message];
  }

  console.log['Connected to the MySQL server.'];
}];
0
  • Bước 6. Chương trình sử dụng cấu hình. js như đã đề cập trong các bước nêu trên. Trong câu lệnh CALL, bạn tận dụng trình giữ chỗ để di chuyển dữ liệu sang thủ tục được lưu trữ.

    Khi bạn gọi phương thức query[] trên đối tượng kết nối, bạn di chuyển giá trị của đối số done thành đối số thứ hai của phương thức query[]. Bây giờ, nếu bạn chạy storedproc. js, đây là kết quả sẽ như thế nào.
connection.connect[function[err] {
  if [err] {
    return console.error['error: ' + err.message];
  }

  console.log['Connected to the MySQL server.'];
}];
1

Đúng như dự đoán, chương trình mô tả một hàng đơn độc

Sự kết luận

Blog này thảo luận về các bước liên quan đến Tích hợp MySQL JS sau phần giới thiệu ngắn gọn về các lợi ích và tính năng nổi bật của MySQL và Nodejs. Nó cũng bao gồm các chủ đề như xóa, tạo, truy vấn, chạy Bảng MySQL với sự trợ giúp của Nodejs

Trích xuất dữ liệu phức tạp từ một tập hợp nguồn dữ liệu đa dạng để thực hiện phân tích sâu sắc có thể là một thách thức và đây là lúc Hevo tiết kiệm thời gian. Hevo cung cấp một cách nhanh hơn để di chuyển dữ liệu từ Cơ sở dữ liệu hoặc ứng dụng SaaS như MySQL vào Kho dữ liệu của bạn để được hiển thị trong công cụ BI. Hevo hoàn toàn tự động và do đó không yêu cầu bạn viết mã

HÃY THAM QUAN TRANG WEB CỦA CHÚNG TÔI ĐỂ KHÁM PHÁ HEVO

Bạn muốn thử Hevo?

ĐĂNG KÝ và tận tay trải nghiệm bộ Hevo giàu tính năng. Bạn cũng có thể xem giá cạnh tranh nhất sẽ giúp bạn chọn gói phù hợp cho nhu cầu kinh doanh của mình

Cơ sở dữ liệu nào là tốt nhất với nút js?

“Nút. js chỉ có thể được sử dụng với MongoDB [là cơ sở dữ liệu NoSQL phổ biến nhất]. ”

Tôi có nên sử dụng MySQL hoặc MongoDB với nút js không?

MySQL là lựa chọn tuyệt vời nếu bạn có dữ liệu có cấu trúc và cần một cơ sở dữ liệu quan hệ truyền thống . MongoDB rất phù hợp để phân tích thời gian thực, quản lý nội dung, Internet vạn vật, di động và các loại ứng dụng khác.

SQL có tốt với Nodejs không?

Nút. js thường hỗ trợ tất cả các loại cơ sở dữ liệu, bất kể chúng là SQL hay NoSQL . Tuy nhiên, việc lựa chọn cơ sở dữ liệu phải được thực hiện dựa trên mức độ phức tạp và mục đích của ứng dụng của bạn. Trong bài viết này, chúng ta sẽ xem xét kỹ hơn về cơ sở dữ liệu SQL và NoSQL, cũng như các ví dụ thực tế của chúng.

Nodejs có cho phép giao tiếp với MySQL không?

Trình điều khiển MySQL cho các dự án nút . Để một ứng dụng có khả năng này, bạn cần cài đặt Trình điều khiển MySQL. Trình điều khiển có sẵn trên npm dưới dạng mysql. you can communicate with it programmatically through a Node application, using a driver. For an application to have this ability, you need to install a MySQL Driver. A driver is available on npm as mysql !

Chủ Đề