Cách chạy nhiều truy vấn trong nút mysql js

Có thể có những trường hợp bạn đã thiết lập một nhóm kết nối MySQL, nhưng bạn có một số truy vấn muốn chạy theo thứ tự

SELECT 1;
SELECT 2;

Bạn chỉ có thể chạy sau đó sử dụng pool.query như đã thấy ở nơi khác, tuy nhiên nếu bạn chỉ có một kết nối miễn phí trong nhóm, bạn phải đợi cho đến khi có kết nối trước khi bạn có thể chạy truy vấn thứ hai

Tuy nhiên, bạn có thể giữ lại một kết nối đang hoạt động từ nhóm và chạy bao nhiêu truy vấn tùy thích bằng cách sử dụng một kết nối bằng cách sử dụng pool.getConnection

pool.getConnection[function [err, conn] {
  if [err] return callback[err];

  conn.query['SELECT 1 AS seq', function [err, rows] {
    if [err] throw err;

    conn.query['SELECT 2 AS seq', function [err, rows] {
      if [err] throw err;

      conn.release[];
      callback[];
    }];
  }];
}];

Ghi chú. Bạn phải nhớ release kết nối, nếu không sẽ có ít hơn một kết nối MySQL có sẵn cho phần còn lại của nhóm

Bạn đã thử xây dựng Ứng dụng web bằng cơ sở dữ liệu MySQL trên Node js chưa?

Thứ hai, chúng tôi sẽ sử dụng quy trình tương tự để phân tích dữ liệu thành tệp SQL trước khi chạy nó, chẳng hạn như chỉ định số lượng trường và cột cần tạo hoặc chèn

PHẦN 1

Hướng dẫn này giả định rằng bạn đã biết cách cài đặt các phụ thuộc và bắt đầu một dự án Nodejs, nếu bạn chưa biết hoặc cần xem lại, hãy nhấp vào đây

Cài đặt mysql, express và gật đầu vì phần phụ thuộc này được yêu cầu trong hướng dẫn này

Hãy bắt đầu bằng cách xuất một truy vấn SQL từ cơ sở dữ liệu MySQL, tạo một thư mục mới có tên src, bên trong thư mục src, chúng tôi sẽ tạo tất cả các tệp đang hoạt động của mình, tạo một thư mục khác có tên sql và sao chép tệp sql đã xuất vào bên trong thư mục;

Tiếp theo tạo thư mục config, bên trong thư mục config tạo config. js và lưu các mã sau;

Ghi chú. tên cơ sở dữ liệu phải là tên của cơ sở dữ liệu bạn đã tạo

Đoạn mã trên là một cấu hình để kết nối với MySQL DB, lưu ý rằng multipleStatements được đặt thành true, điều này cho phép chúng ta chạy nhiều câu lệnh SQL cùng một lúc, Vâng, thật tuyệt phải không?

Tiếp theo, tạo một điểm vào cho ứng dụng có tên webApp của bạn. js và lưu các mã sau;

Từ đoạn mã trên tôi đã chèn nhận xét để giải thích đơn giản từng dòng mã

Tiếp theo, hãy tạo bộ định tuyến của chúng tôi, trong nút js; . Đối với yêu cầu nhận hiển thị trang chính xác và Đối với yêu cầu bài đăng xử lý bài đăng với chức năng chính xác

Đối với hướng dẫn này, chúng tôi sẽ thực hiện hai tác vụ, đầu tiên chạy nhiều câu lệnh từ tệp SQL tĩnh và thứ hai phân tích dữ liệu thành tệp SQL trước khi thực hiện, vì mục đích đơn giản, hãy đặt tên cho các tuyến lần lượt là thứ nhất và thứ hai

Tạo một thư mục bộ định tuyến và bên trong nó tạo hai tên tệp JS trước. js và thứ hai. js

đầu tiên. js, hãy lưu đoạn mã sau;

Từ đoạn mã trên, trước tiên chúng tôi nhập các phụ thuộc của mình, lưu ý rằng chúng tôi nhập fs viết tắt của hệ thống tệp; . js cung cấp các chức năng hữu ích để tương tác với hệ thống tệp. Nút. js bao gồm mô-đun fs để truy cập hệ thống tệp vật lý. Mô-đun fs chịu trách nhiệm cho tất cả các hoạt động I/O tệp không đồng bộ hoặc đồng bộ

Ngoài ra, lưu ý rằng chúng tôi nhập đường dẫn;

Trong chức năng yêu cầu nhận của chúng tôi, chúng tôi đã khai báo một biến const và gán nội dung của tệp SQL của chúng tôi bằng mô-đun fs và đường dẫn. Lưu ý __dirname;

Cuối cùng, chúng tôi chạy truy vấn của mình với hai đối số err cho chúng tôi biết nếu có lỗi xảy ra khi chạy truy vấn và kết quả có chứa thông báo cho chúng tôi biết liệu truy vấn có được chạy thành công hay không

Trước khi chúng tôi chạy ứng dụng Node của mình, chúng tôi cần thực hiện các thay đổi đối với gói của mình. json, Khi bạn chạy npm init để tạo ứng dụng nút, một gói. tệp json đã được tạo

mở gói. json và thêm dòng mã này vào trong thẻ script;

Vâng, chúng tôi đã hoàn thành phần đầu tiên, từ thiết bị đầu cuối của bạn;

http. //máy chủ cục bộ. 3000

http. //máy chủ cục bộ. 3000/lần đầu tiên

Trong những tuần tới, tôi sẽ hoàn thành phần thứ hai của hướng dẫn này trong những giờ rảnh rỗi và hãy cho tôi biết trong phần phản hồi nếu bạn quan tâm, mã hoàn chỉnh có sẵn trên repo Github tại đây

Nếu bạn có bất kỳ câu hỏi nào hoặc nếu bạn nghĩ rằng tôi đã nhầm lẫn ở một điểm nào đó, vui lòng hỏi/nói điều đó trong phần phản hồi

Chủ Đề