Hướng dẫn node js mysql reuse connection - nút js mysql tái sử dụng kết nối

Tôi xin lỗi, nhưng tôi đã sử dụng một dịch giả. Tôi hy vọng bạn hiểu.

Show

Tôi đã tò mò khi sử dụng mô -đun MySQL. Nhìn vào mã đầu tiên.

let mysql = require('mysql');
4

Tạo một hồ bơi.

const mysql = require('mysql2');
const config = {
    host: process.env.DB_HOST,
    user: process.env.DB_USER,
    password: process.env.DB_PW,
    database: process.env.DB_NAME,
    connectionLimit: 100,
    queueLimit: 10000,
    multipleStatements: true,
    waitForConnections: true,
    dateStrings: 'date'
}

const createPool = mysql.createPool(config, (err)=>{
    console.error(err);
});

const pool = createPool.promise();

module.exports = pool;

let mysql = require('mysql');
5

let mysql = require('mysql');
6 tạo ra một kết nối, chuyển nó đến
let mysql = require('mysql');
7 sau khi sử dụng và tiếp tục sử dụng nó.

const pool = require('./db_promise.js');

const A = async ()=>{
    let conn;
    try {
        conn = await pool.getConnection();
        await conn.query('do stuff1..');
        await B(conn);
        return;
    }catch(e){
        console.error(e);
    } finally {
        conn.release();
    }
}
const B = async (conn)=>{
    try {
        await conn.query('do stuff2..');
        return;
    }catch(e){
        throw e;
    }
}

Tạo kết nối cho mỗi chức năng sẽ là một sự lãng phí. Chỉ có thể một kết nối được sử dụng lại khi nó là một chức năng liên quan?

Rambo

unread,

Ngày 1 tháng 7 năm 2011, 3:35:25 AM7/1/117/1/11

đến

Tôi có một tập lệnh chính kết nối với MySQL bằng mô-đun 'Node-mysql', thực hiện một vài truy vấn và đóng kết nối ngay trước khi thoát.

Điều gì xảy ra khi một mô -đun cũng cần thiết lập kết nối cơ sở dữ liệu nhưng không biết khi nào nên đóng nó? Tôi không có "kẻ hủy diệt" hoặc một cái gì đó tương tự, vì vậy kịch bản sẽ chờ đợi mãi mãi để kết nối đóng lại!

Giả sử mô -đun là một lớp có tên là "API" có phương thức "tìm kiếm" sử dụng kết nối cơ sở dữ liệu. Tôi có cần kết nối và ngắt kết nối khi ăn xin và ở cuối phương pháp đó không? Có cách nào để sử dụng lại phiên bản mysql.client chính trong một mô -đun khác không? Có một cách sạch hơn? Thật tệ!

Cảm ơn bạn đã giúp đỡ.

alessio_alex

unread,

Ngày 1 tháng 7 năm 2011, 4:36:33 PM7/1/117/1/11

đến nodejs

Tôi đã tự hỏi câu hỏi đó và tôi đã được đề nghị sử dụng Node-Pool https://github.com/coopernurse/node-pool.
https://github.com/coopernurse/node-pool .

Tôi không chắc chắn 100% tại sao tôi cần điều đó, vì vậy tôi đã hỏi người tạo ra dự án đó một số câu hỏi.
of that project some questions.

Đây là những gì anh ấy đã trả lời:

Ưu điểm của việc sử dụng nó là hai lần:

. Nếu không có ứng dụng nút này của bạn sẽ sinh ra kết nối riêng cho mỗi truy vấn hoặc kết nối HTTP (tùy thuộc vào cách bạn viết ứng dụng của mình), có thể tạo ra hàng trăm kết nối đồng thời, điều này sẽ khiến MySQL buồn.
reduces the connect/disconnect overhead to mysql
(b) You can throttle connections to the db to whatever limit you set
in the pool. without this your node app would spawn a separate
connection per query or http connection (depending how you write your
app), which could produces hundreds of concurrent connections, which
would make mysql sad.

Vì vậy, có lẽ tốt hơn (và an toàn hơn) để sử dụng Pool Node với MySQL.

Hy vọng điều đó sẽ giúp!

Evgeny Bogdanov

unread,

Ngày 1 tháng 7 năm 2011, 5:01:15 PM7/1/117/1/11

đến

Tôi không biết đó là cách thực hành tốt nhất hay thậm chí tốt, nhưng đó là cách tôi thực hiện nó trong Express. Tôi mở một kết nối cho ứng dụng và sử dụng nó trong các tuyến đường:
I open one connection for application and use it in routes:

// khởi tạo mysql mysql.connect (); app.set ('mysql', mysql);
mysql.connect();
app.set('mysql',mysql);

// Tất cả các tuyến đều có đối tượng ứng dụng, vì vậy tôi có thể gọi máy chủ MySQL này WayApp.Sinstall.Mysql.Query (...)
app.settings.mysql.query(...)

Rambo

unread,

Ngày 1 tháng 7 năm 2011, 10:01:23 PM7/1/117/1/11

đến

Tôi không biết đó là cách thực hành tốt nhất hay thậm chí tốt, nhưng đó là cách tôi thực hiện nó trong Express. Tôi mở một kết nối cho ứng dụng và sử dụng nó trong các tuyến đường:

// khởi tạo mysql mysql.connect (); app.set ('mysql', mysql);

// Tất cả các tuyến đều có đối tượng ứng dụng, vì vậy tôi có thể gọi máy chủ MySQL này WayApp.Sinstall.Mysql.Query (...)

Rambo

Ngày 1 tháng 7 năm 2011, 10:01:23 PM7/1/11

Trên thực tế, tôi đã mở rộng mysql.client với một phương thức trả về kết nối luôn giống nhau trên mỗi máy chủ, như singleton. Nó đang hoạt động cho bây giờ.

mysql.client._connections = {};

mysql.client.getconnection = function (config) {

MySQL là một hệ thống quản lý cơ sở dữ liệu quan hệ. Công cụ nguồn mở này là một trong những RDBM tốt nhất có sẵn trên thị trường đang được sử dụng để phát triển các ứng dụng phần mềm dựa trên web, trong số các ứng dụng khác.Open-source tool is one of the best RDBMS available in the market that is being used to develop web-based software applications, among others.

MySQL có thể mở rộng, trực quan và nhanh chóng khi so sánh với những người đương thời. Nó chứa một kiến ​​trúc máy khách-máy chủ. Cốt lõi của cơ sở dữ liệu MySQL là máy chủ MySQL. Máy chủ này được sử dụng như một chương trình riêng biệt và xử lý tất cả các hướng dẫn, lệnh và câu lệnh cơ sở dữ liệu.MySQL Server. This Server is availed as a separate program and handles all the database instructions, commands, and statements.

Node.js là một môi trường thời gian chạy JavaScript nguồn mở, nguồn mở có thể thực hiện mã JavaScript bên ngoài trình duyệt web và chạy trên động cơ V8.

Blog này nói chi tiết về các bước khác nhau mà bạn có thể thực hiện để thực hiện liền mạch tích hợp NPM MySQL. Nó cũng giới thiệu ngắn gọn về NPM MySQL2 trước khi đi vào các khía cạnh khác nhau của tích hợp NodeJS MySQL, như chèn, truy vấn, sáng tạo, sửa đổi, để đặt tên cho một số.

Mục lục

  • MySQL là gì?
    • Các tính năng chính của MySQL
  • Node.js là gì?
  • Làm thế nào để kết nối với cơ sở dữ liệu MySQL bằng Node.js?
    • NodeJS Integration MySQL: Cài đặt trình điều khiển MySQL Node.js
    • NodeJS Integration MySQL: Định cấu hình kết nối máy chủ cơ sở dữ liệu MySQL
    • NodeJS Integration MySQL: Đóng kết nối cơ sở dữ liệu
    • NodeJS Integration MySQL: Kết nối nhóm
  • Cách tạo bảng MySQL bằng Node.js? & NBSP;
  • Làm thế nào để chèn dữ liệu vào các bảng MySQL với Node.js?
    • NodeJS Chèn bảng MySQL: Chèn một hàng dữ liệu vào bảng MySQL
    • NodeJS Chèn bảng MySQL: Chèn nhiều hàng vào bảng MySQL
  • Làm thế nào để truy vấn cơ sở dữ liệu MySQL bằng Node.js?
    • Truy vấn NodeJS MySQL: Truy vấn SQL đơn giản
    • NodeJS MySQL truy vấn: Tránh tiêm SQL
  • Làm thế nào để sửa đổi các bảng MySQL với Node.js?
  • Làm thế nào để xóa dữ liệu khỏi các bảng MySQL bằng Node.js?
  • Tiền thưởng: Gọi/Chạy các quy trình lưu trữ MySQL bằng Node.js
  • Sự kết luận

MySQL là gì?

Hướng dẫn node js mysql reuse connection - nút js mysql tái sử dụng kết nối
Các tính năng chính của MySQL

Node.js là gì?39% of developers in the world back in 2019, making it the world’s most popular Database. It certainly lacks the extensive features that are provided by PostgreSQL, but it is still useful for a variety of use cases like web applications. 

Làm thế nào để kết nối với cơ sở dữ liệu MySQL bằng Node.js?LAMP Stack, where LAMP stack is an Open-Source suite of web applications that consists of Linux, Apache HTTP Server, MySQL, PHP; MySQL is the go-to choice for scalable web applications. Let’s talk about a few salient features that make MySQL such a great catch. Also, see how you can integrate from MySQL to PostgreSQL. 

Các tính năng chính của MySQL

  • Node.js là gì?: Oracle owns and maintains MySQL. It also offers premium versions of MySQL with additional services, proprietary plugins, user support, and extensions. 
  • Làm thế nào để kết nối với cơ sở dữ liệu MySQL bằng Node.js?: MySQL has been around for over 20 years since its first release in 1995.
  • NodeJS Integration MySQL: Cài đặt trình điều khiển MySQL Node.js: MySQL is getting more robust with frequent updates alongside new features and security improvements. The latest release is Version 8.0.23 released on 18 January 2021.
  • NodeJS Integration MySQL: Định cấu hình kết nối máy chủ cơ sở dữ liệu MySQL: MySQL recently started offering MVCC (Multi-Version Concurrency Control) features. 
  • NodeJS Integration MySQL: Đóng kết nối cơ sở dữ liệu: A devoted community of developers is available to help with troubleshooting as and when needed.
  • Nguồn mở: MySQL cũng là một hệ thống quản lý cơ sở dữ liệu quan hệ nguồn mở và miễn phí (RDBMS).: MySQL is also a Free and Open-Source Relational Database Management System (RDBMS).
  • Người dùng: MySQL được sử dụng rộng rãi bởi Google, NASA, Flickr, GitHub, Netflix, Tesla, Twitter, Uber, Wikipedia, YouTube, Zendesk để đặt tên cho một số.: MySQL is used widely by Google, NASA, Flickr, GitHub, Netflix, Tesla, Twitter, Uber, Wikipedia, YouTube, Zendesk to name a few.
Hướng dẫn node js mysql reuse connection - nút js mysql tái sử dụng kết nối
Nguồn hình ảnh

Node.js là gì?

Hướng dẫn node js mysql reuse connection - nút js mysql tái sử dụng kết nối
Nguồn hình ảnh

Node.js là gì?

Node.js được phát triển như một thời gian chạy JavaScript hướng sự kiện không đồng bộ có thể được tận dụng để phát triển các ứng dụng có thể mở rộng. Nó chủ yếu được các nhà phát triển sử dụng để phát triển các công cụ dòng lệnh, ngoài kịch bản phía máy chủ để tạo nội dung web động trước khi nó thực sự được mở trên màn hình của người dùng.

Được cung cấp bởi động cơ V8 của Google Chrome, tiện ích của Node.js tồn tại trong thực tế là nó có thể xử lý mã JavaScript bên ngoài trình duyệt web.

Theo quan điểm, Node.js có thể được coi là một JavaScript ở khắp mọi nơi chế độ của người Hồi Mã phía máy khách. Cụ thể, Node.js là một kiến ​​trúc dựa trên sự kiện tập trung vào việc làm phong phú và tối ưu hóa khả năng mở rộng và thông lượng trong các ứng dụng web. & NBSP;

Hướng dẫn node js mysql reuse connection - nút js mysql tái sử dụng kết nối
Nguồn hình ảnh

Node.js là gì?including 40+ Free Data Sources) like MySQL to a destination of your choice in real-time in an effortless manner.

Node.js được phát triển như một thời gian chạy JavaScript hướng sự kiện không đồng bộ có thể được tận dụng để phát triển các ứng dụng có thể mở rộng. Nó chủ yếu được các nhà phát triển sử dụng để phát triển các công cụ dòng lệnh, ngoài kịch bản phía máy chủ để tạo nội dung web động trước khi nó thực sự được mở trên màn hình của người dùng.

Được cung cấp bởi động cơ V8 của Google Chrome, tiện ích của Node.js tồn tại trong thực tế là nó có thể xử lý mã JavaScript bên ngoài trình duyệt web.

Theo quan điểm, Node.js có thể được coi là một JavaScript ở khắp mọi nơi chế độ của người Hồi Mã phía máy khách. Cụ thể, Node.js là một kiến ​​trúc dựa trên sự kiện tập trung vào việc làm phong phú và tối ưu hóa khả năng mở rộng và thông lượng trong các ứng dụng web. & NBSP;

  • Theo như việc đặt tên có liên quan, .js được gọi là tên mở rộng tệp tiêu chuẩn trong JavaScript nhưng Node.js không đề cập đến một tệp cụ thể thay vì nó là tên sản phẩm chung. & NBSP; The Hevo platform can be set up in just a few minutes and requires minimal maintenance.
  • Một nền tảng đường ống dữ liệu không có mã được quản lý đầy đủ như HEVO giúp bạn tích hợp dữ liệu từ hơn 100 nguồn dữ liệu (bao gồm hơn 40 nguồn dữ liệu miễn phí) như MySQL vào đích mà bạn chọn theo thời gian thực một cách dễ dàng. Hevo provides real-time data migration, so you can have analysis-ready data always.
  • HEVO với đường cong học tập tối thiểu có thể được thiết lập chỉ trong vài phút cho phép người dùng tải dữ liệu mà không phải thỏa hiệp hiệu suất. Sự tích hợp mạnh mẽ của nó với các nguồn thứ mười một cung cấp cho người dùng sự linh hoạt để mang lại dữ liệu thuộc các loại khác nhau, theo kiểu trơn tru mà không phải mã hóa một dòng. & NBSP;: Hevo provides preload transformations through Python code. It also allows you to run transformation code for each event in the Data Pipelines you set up. These can be configured and tested before putting them to use.
  • Bắt đầu với Hevo miễn phí: Hevo supports 100+ Integrations to SaaS platforms, files, databases, analytics, and BI tools. It supports various destinations including Amazon Redshift, Firebolt, Snowflake Data Warehouses; Databricks, Amazon S3 Data Lakes, MySQL, SQL Server, TokuDB, DynamoDB, PostgreSQL databases to name a few.  
  • Kiểm tra một số tính năng thú vị của Hevo: Hevo’s robust infrastructure ensures reliable data transfer with zero data loss.
  • Hoàn toàn tự động: Nền tảng HEVO có thể được thiết lập chỉ trong vài phút và yêu cầu bảo trì tối thiểu. Hevo has in-built integrations for 100+ sources, that can help you scale your data infrastructure as required.
  • Chuyển dữ liệu thời gian thực: HEVO cung cấp di chuyển dữ liệu thời gian thực, vì vậy bạn có thể luôn có dữ liệu sẵn sàng phân tích. The Hevo team is available round the clock to extend exceptional support to you through chat, email, and support calls.
  • Biến đổi: Hevo cung cấp các phép biến đổi trước thông qua mã Python. Nó cũng cho phép bạn chạy mã chuyển đổi cho mỗi sự kiện trong các đường ống dữ liệu bạn đã thiết lập. Chúng có thể được cấu hình và kiểm tra trước khi đưa chúng vào sử dụng. Hevo takes away the tedious task of schema management & automatically detects the schema of incoming data and maps it to the destination schema.
  • Đầu nối: HEVO hỗ trợ hơn 100 tích hợp cho các nền tảng, tệp, cơ sở dữ liệu, phân tích và công cụ BI. Nó hỗ trợ các điểm đến khác nhau bao gồm Amazon Redshift, Firebolt, kho dữ liệu Bông tuyết; Databricks, Amazon S3 Data Lakes, MySQL, SQL Server, Tokudb, DynamoDB, PostgreSQL cơ sở dữ liệu để đặt tên cho một số. & NBSP; & nbsp; Hevo allows you to monitor the data flow so you can check where your data is at a particular point in time.

Truyền dữ liệu hoàn chỉnh và chính xác 100%: Cơ sở hạ tầng mạnh mẽ của Hevo, đảm bảo truyền dữ liệu đáng tin cậy với mất dữ liệu bằng không.

Cơ sở hạ tầng có thể mở rộng: HEVO có tích hợp được xây dựng cho hơn 100 nguồn, có thể giúp bạn mở rộng cơ sở hạ tầng dữ liệu của mình theo yêu cầu.

Hỗ trợ trực tiếp 24/7: Nhóm HEVO có sẵn vòng quanh để mở rộng hỗ trợ đặc biệt cho bạn thông qua trò chuyện, email và các cuộc gọi hỗ trợ.

Hướng dẫn node js mysql reuse connection - nút js mysql tái sử dụng kết nối
Quản lý lược đồ: Hevo lấy đi nhiệm vụ tẻ nhạt của quản lý lược đồ và tự động phát hiện lược đồ của dữ liệu đến và ánh xạ nó đến lược đồ đích.

Giám sát trực tiếp: HEVO cho phép bạn theo dõi luồng dữ liệu để bạn có thể kiểm tra nơi dữ liệu của bạn tại một thời điểm cụ thể.

  • Đơn giản hóa phân tích dữ liệu của bạn với Hevo ngày hôm nay! & NBSP;
  • Đăng ký tại đây để dùng thử miễn phí 14 ngày!
  • Làm thế nào để kết nối với cơ sở dữ liệu MySQL bằng Node.js?
  • Nguồn hình ảnh

Đơn giản hóa phân tích dữ liệu của bạn với Hevo ngày hôm nay! & NBSP;

  • Đăng ký tại đây để dùng thử miễn phí 14 ngày!: First, you need to create a folder for storing the Nodejs app, for instance, node-mysql, and leverage the npm init command to develop the package.json file. Next, you need to install node.js for the MySQL package with the help of the following command:
Làm thế nào để kết nối với cơ sở dữ liệu MySQL bằng Node.js?
  • Nguồn hình ảnh: In this step, you need to create the connect.js script within the node-mysql folder to store the code that links to the MySQL Database Server.

    Dưới đây là các bước liên quan đến việc thiết lập tích hợp MySQL NodeJS:

CREATE DATABASE todoapp;
  • Bước 3: Khi bạn đã tạo cơ sở dữ liệu, bạn có thể kết nối nó từ ứng dụng NodeJS.: Once you’ve created the database, you can go about connecting it from the Nodejs application.

NodeJS Integration MySQL: Định cấu hình kết nối máy chủ cơ sở dữ liệu MySQL

  • Bước 1: Để bắt đầu cấu hình của kết nối máy chủ cơ sở dữ liệu MySQL, trước tiên bạn cần nhập mô -đun MySQL thông qua lệnh được đề cập dưới đây:: To begin the configuration of the MySQL Database Server Connection, you first need to import the module mysql via the command mentioned below:
let mysql = require('mysql');
  • Bước 2: Tiếp theo, bạn cần tạo kết nối với cơ sở dữ liệu MySQL bằng cách tham khảo phương thức CreateConnection () và cung cấp thông tin cần thiết trên máy chủ MySQL như người dùng, máy chủ, cơ sở dữ liệu và mật khẩu theo lệnh sau:: Next, you need to create a connection to the MySQL database by referring to the createConnection() method and supplying the requisite information on MySQL Server such as user, host, database, and password according to the following command:
let connection = mysql.createConnection({
    host: 'localhost',
    user: 'root',
    password: '',
    database: 'todoapp'
});
  • Bước 3: Bây giờ, bạn đã tạo kết nối với cơ sở dữ liệu ‘TODOApp, trong máy chủ cơ sở dữ liệu cục bộ, bạn có thể gọi phương thức Connect () trên đối tượng kết nối với liên kết đến máy chủ cơ sở dữ liệu MySQL:: Now that you’ve created the connection to the database ‘todoapp’ within the local database server, you can call the connect() method on the connection object to link to the MySQL Database Server:
connection.connect(function(err) {
  if (err) {
    return console.error('error: ' + err.message);
  }

  console.log('Connected to the MySQL server.');
});
  • Bước 4: Phương thức Connect () được biểu thị trong bước trước chấp nhận hàm gọi lại chứa đối số ERR cung cấp các lỗi chi tiết trong trường hợp của một. Bạn có thể kiểm tra chương trình Connect.js với sự trợ giúp của đoạn mã sau:: The connect() method expressed in the previous step accepts a callback function that contains the err argument which provides detailed errors in the event of one. You can test the connect.js program with the help of the following code snippet:
> node connect.js
Connected to the MySQL server
  • Bước 5: Sau khi thực hiện lệnh đã nói ở trên, nếu bạn nhận được thông báo, kết nối với máy chủ MySQL, điều đó 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ừ trong ứng dụng NodeJS.: After executing the aforementioned command, if you receive the message “connected to the MySQL Server”, it means that you have successfully connected to the MySQL Database Server from within the Nodejs application.

    Bây giờ, nếu cơ sở dữ liệu TODOApps đã ngừng tồn tại trong máy chủ cơ sở dữ liệu của bạn và bạn vẫn cố liên kết với nó, thì đây là thông báo lỗi 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à hoàn thành theo trình tự.: A point to note here is that every method you choose to call on the connection object is queued and fulfilled in sequence.

NodeJS Integration MySQL: Đóng kết nối cơ sở dữ liệu

  • Bước 1: Bây giờ bạn đã 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 các truy vấn luôn được thực hiện trước khi đóng kết nối cơ sở dữ liệu.: Now that you’ve configured the database connection, you need to close it as well. For this, you need to call the end() method present on the connection object. The end() method makes sure that the remainder of the queries is always carried out prior to the closing of the database connection.

    Ở đây, đoạn mã 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 phá hủy (). Phương pháp này đảm bảo rằng không có thêm sự kiện hoặc cuộc gọi lại sẽ được kích hoạt cho kết nối.: However, if you choose to force the closing of the connection instantly, you can opt for the destroy() method. This method ensures that no more events or callbacks would be triggered for the connection.

    Tại đây, đoạn mã mã mô tả cách bạn có thể tận dụng phương thức phá hủy ():

const pool = require('./db_promise.js');

const A = async ()=>{
    let conn;
    try {
        conn = await pool.getConnection();
        await conn.query('do stuff1..');
        await B(conn);
        return;
    }catch(e){
        console.error(e);
    } finally {
        conn.release();
    }
}
const B = async (conn)=>{
    try {
        await conn.query('do stuff2..');
        return;
    }catch(e){
        throw e;
    }
}
0
  • Bước 3: Như đã nêu trước đây, phương thức phá hủy () rõ ràng không có đối số gọi lại trái ngược với phương thức end ().: As stated previously, the destroy() method clearly doesn’t have a callback argument as opposed to the end() method.

NodeJS Integration MySQL: Kết nối nhóm

  • Bước 1: Để kết nối nhóm cho tích hợp NodeJS MySQL, bạn có thể tận dụng trình điều khiển MySQL trong nhà cho mô-đun NodeJS vì nó đi kèm với tính năng gộp kết nối tích hợp. Nói, nếu bạn muốn tạo nhóm kết nối với 7 kết nối thì bạn có thể sử dụng đoạn mã sau:: To pool connections for the Nodejs MySQL Integration, you can leverage the in-house MySQL driver for the Nodejs module since it comes with a built-in connection pooling feature. Say, if you wish to generate a connection pool with 7 connections then you can use the following code snippet:
const pool = require('./db_promise.js');

const A = async ()=>{
    let conn;
    try {
        conn = await pool.getConnection();
        await conn.query('do stuff1..');
        await B(conn);
        return;
    }catch(e){
        console.error(e);
    } finally {
        conn.release();
    }
}
const B = async (conn)=>{
    try {
        await conn.query('do stuff2..');
        return;
    }catch(e){
        throw e;
    }
}
1
  • 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:: Now, to establish a connection from the connection pool, you can leverage the getConnection() method as follows:
const pool = require('./db_promise.js');

const A = async ()=>{
    let conn;
    try {
        conn = await pool.getConnection();
        await conn.query('do stuff1..');
        await B(conn);
        return;
    }catch(e){
        console.error(e);
    } finally {
        conn.release();
    }
}
const B = async (conn)=>{
    try {
        await conn.query('do stuff2..');
        return;
    }catch(e){
        throw e;
    }
}
2
  • Bước 3: Bây giờ, để hoàn nguyên kết nối trở lại nhóm sau khi bạn đã thực hiện với nó, bạn có thể gọi phương thức Connection.Release (). Sau đó, kết nối có thể được sử dụng trong nhóm bởi người khác.: Now, to revert a connection back to the pool once you’re done with it you can invoke the connection.release() method. Following this, the connection can be availed in the pool by someone else.

    Ở đây, đoạn mã mã cho cùng:

const pool = require('./db_promise.js');

const A = async ()=>{
    let conn;
    try {
        conn = await pool.getConnection();
        await conn.query('do stuff1..');
        await B(conn);
        return;
    }catch(e){
        console.error(e);
    } finally {
        conn.release();
    }
}
const B = async (conn)=>{
    try {
        await conn.query('do stuff2..');
        return;
    }catch(e){
        throw e;
    }
}
3
  • 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 phá hủy (). Phương pháp này đảm bảo rằng không có thêm sự kiện hoặc cuộc gọi lại sẽ được kích hoạt cho kết nối.: If you want to close a connection and eliminate it from the pool, you can use the connection.destroy() method. A new connection would be generated within the pool if the need arises for it.

    Tại đây, đoạn mã mã mô tả cách bạn có thể tận dụng phương thức phá hủy ():

const pool = require('./db_promise.js');

const A = async ()=>{
    let conn;
    try {
        conn = await pool.getConnection();
        await conn.query('do stuff1..');
        await B(conn);
        return;
    }catch(e){
        console.error(e);
    } finally {
        conn.release();
    }
}
const B = async (conn)=>{
    try {
        await conn.query('do stuff2..');
        return;
    }catch(e){
        throw e;
    }
}
4

Bước 3: Như đã nêu trước đây, phương thức phá hủy () rõ ràng không có đối số gọi lại trái ngược với phương thức end ().

  • NodeJS Integration MySQL: Kết nối nhóm: First, you need to connect to the MySQL Database Server. In this instance (query.js) you can connect to the todoapp database and carry out the CREATE TABLE statement as follows:
const pool = require('./db_promise.js');

const A = async ()=>{
    let conn;
    try {
        conn = await pool.getConnection();
        await conn.query('do stuff1..');
        await B(conn);
        return;
    }catch(e){
        console.error(e);
    } finally {
        conn.release();
    }
}
const B = async (conn)=>{
    try {
        await conn.query('do stuff2..');
        return;
    }catch(e){
        throw e;
    }
}
5
  • Bước 1: Để kết nối nhóm cho tích hợp NodeJS MySQL, bạn có thể tận dụng trình điều khiển MySQL trong nhà cho mô-đun NodeJS vì nó đi kèm với tính năng gộp kết nối tích hợp. Nói, nếu bạn muốn tạo nhóm kết nối với 7 kết nối thì bạn có thể sử dụng đoạn mã sau:: The query() method accepts a callback and an SQL statement. The callback function will take 3 arguments: error, results, and fields.

    Ở đây, đoạn mã mã cho cùng:

const pool = require('./db_promise.js');

const A = async ()=>{
    let conn;
    try {
        conn = await pool.getConnection();
        await conn.query('do stuff1..');
        await B(conn);
        return;
    }catch(e){
        console.error(e);
    } finally {
        conn.release();
    }
}
const B = async (conn)=>{
    try {
        await conn.query('do stuff2..');
        return;
    }catch(e){
        throw e;
    }
}
6
  • 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 phá hủy (). Phương pháp này đảm bảo rằng không có thêm sự kiện hoặc cuộc gọi lại sẽ được kích hoạt cho kết nối.: Now that your query has been executed without any errors, you need to check if the todos table was created within your designated database:
const pool = require('./db_promise.js');

const A = async ()=>{
    let conn;
    try {
        conn = await pool.getConnection();
        await conn.query('do stuff1..');
        await B(conn);
        return;
    }catch(e){
        console.error(e);
    } finally {
        conn.release();
    }
}
const B = async (conn)=>{
    try {
        await conn.query('do stuff2..');
        return;
    }catch(e){
        throw e;
    }
}
7
  • Tại đây, đoạn mã mã mô tả cách bạn có thể tận dụng phương thức phá hủy ():: As is evident from the previous query, you can see that the todos table was successfully created within your todoapp database.

Bước 3: Như đã nêu trước đây, phương thức phá hủy () rõ ràng không có đối số gọi lại trái ngược với phương thức end ().

NodeJS Integration MySQL: Kết nối nhóm

  • NodeJS Chèn bảng MySQL: Chèn một hàng dữ liệu vào bảng MySQL
  • NodeJS Chèn bảng MySQL: Chèn nhiều hàng vào bảng MySQL

Trước khi nhảy vào NodeJS Chèn bảng MySQL, 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 mô -đun Config.js có chứa thông tin cơ sở dữ liệu MySQL. Đây là những gì tập lệnh config.js trông như thế nào:

const pool = require('./db_promise.js');

const A = async ()=>{
    let conn;
    try {
        conn = await pool.getConnection();
        await conn.query('do stuff1..');
        await B(conn);
        return;
    }catch(e){
        console.error(e);
    } finally {
        conn.release();
    }
}
const B = async (conn)=>{
    try {
        await conn.query('do stuff2..');
        return;
    }catch(e){
        throw e;
    }
}
8

NodeJS Chèn bảng MySQL: 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 độc trong bảng MySQL của bạn (Todos):: You can use the following code snippet to insert a solitary data row within your MySQL Table (todos):
const pool = require('./db_promise.js');

const A = async ()=>{
    let conn;
    try {
        conn = await pool.getConnection();
        await conn.query('do stuff1..');
        await B(conn);
        return;
    }catch(e){
        console.error(e);
    } finally {
        conn.release();
    }
}
const B = async (conn)=>{
    try {
        await conn.query('do stuff2..');
        return;
    }catch(e){
        throw e;
    }
}
9
  • Bước 2: Bạn có thể thực hiện chương trình Chèn.js bằng cách làm theo lệnh được đề cập dưới đây:: You can carry out the insert.js program by following the command mentioned below:
npm install mysql
0
  • 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:: Next, you need to check the data from the todos table with the following code snippet:
npm install mysql
1

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

NodeJS Chèn bảng MySQL: Chèn nhiều hàng vào bảng MySQL

  • Trước khi nhảy vào NodeJS Chèn bảng MySQL, 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 mô -đun Config.js có chứa thông tin cơ sở dữ liệu MySQL. Đây là những gì tập lệnh config.js trông như thế nào:: You can use the code snippet mentioned below to insert multiple rows within your todos table:
npm install mysql
2
  • Bước 1: Bạn có thể sử dụng đoạn mã sau để chèn một hàng dữ liệu đơn độc trong bảng MySQL của bạn (Todos):: A point to note here is that you have only used one question mark (?) within the INSERT statement. Apart from this, the multiple row data is an array of arrays.

    Bước 2: Bạn có thể thực hiện chương trình Chèn.js bằng cách làm theo lệnh được đề cập dưới đây:affectedRows’ property within the results object.

    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:

npm install mysql
3

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

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 trong bảng Todos của bạn:

Bước 2: Một điểm cần lưu ý ở đây là bạn chỉ sử dụng một dấu hỏi (?) Trong câu lệnh chèn. Ngoài ra, dữ liệu nhiều hàng là một mảng mảng.

  • Bạn cũng có thể có được số lượng hàng bạn đã chèn bằng cách tận dụng thuộc tính ‘bị ảnh hưởng trong đối tượng kết quả.
  • Ở đây, đoạn mã mã cho cùng:

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

  • Ở đây, đoạn mã mã cho cùng:: In this code snippet, you will be selecting all the data from the todos table within the todoapp database:
npm install mysql
4
  • Điều này cho thấy 2 hàng đã được chèn thành công trong bảng MySQL của bạn.: Following the execution of the aforementioned statement, you can run the following command:
npm install mysql
5

Làm thế nào để truy vấn cơ sở dữ liệu MySQL bằng Node.js?

  • Dưới đây là các phương pháp khác nhau mà bạn có thể sử dụng cho Truy vấn NodeJS MySQL:: You can even pass the data to the query by executing the following program that selects only the completed todo:
Truy vấn NodeJS MySQL: Truy vấn SQL đơn giản
  • NodeJS MySQL truy vấn: Tránh tiêm SQL: In this example, you have used the question mark as the placeholder value of the field that has been completed. When you called the query() method, you passed an array as the second argument. The placeholder would then be replaced by the values of the array in sequence as follows:
npm install mysql
7

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:

Ở đây, đoạn mã mã cho cùng:

  • Điều này cho thấy 2 hàng đã được chèn thành công trong bảng MySQL của bạn.: Say, if you wish to query a todo on the basis of its id that springs from the argument within the command line, you can execute the following code snippet:
npm install mysql
8
  • Làm thế nào để truy vấn cơ sở dữ liệu MySQL bằng Node.js?: Now, say if you want to select the todo with the id 1, you can use the following command:
npm install mysql
9
  • Dưới đây là các phương pháp khác nhau mà bạn có thể sử dụng cho Truy vấn NodeJS MySQL:: The statement executes correctly. Although, there is still a lingering issue that a suspicious user might try to exploit the program by supplying the SQL Code within the argument.

    Truy vấn NodeJS MySQL: Truy vấn SQL đơn giản

CREATE DATABASE todoapp;
0

NodeJS MySQL truy vấn: Tránh tiêm SQL

  • 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:: You can use the following code snippet to update the status of a todo on the basis of a specified id:
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:
  • Tuyên bố này sẽ trả lại 4 hàng, như dự kiến ​​từ nó.: In this example, you have leveraged placeholders within the UPDATE statement. Now, when you execute the UPDATE statement by invoking the query() method on the connection object, you also pass the data to the UPDATE statement in the form of an array.

    Bước 3: Bạn thậm chí có thể chuyển dữ liệu cho truy vấn bằng cách thực hiện chương trình sau chỉ chọn TODO đã hoàn thành:

  • npm install mysql
    6
    : However, before you carry out the program, you need to check the row with id 1 within the todos table as follows:
CREATE DATABASE todoapp;
2
  • Bước 4: Trong ví dụ này, bạn đã sử dụng dấu 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 truy vấn (), bạn đã chuyển một mảng làm đối số thứ hai. Sau đó, trình giữ chỗ sẽ được thay thế bằng các giá trị của mảng theo trình tự như sau:: Now, on running the snippet in the first step you get the following result:
CREATE DATABASE todoapp;
3
  • 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.: This program depicts a message that lets you know that the number of affected rows is 1. You can check it within the database as well with the following code snippet:
CREATE DATABASE todoapp;
4

Bước 1: Giả sử, nếu bạn muốn truy vấn TODO trên cơ sở ID của nó xuất phát từ đối số trong dòng lệnh, bạn có thể thực thi đoạn mã sau:

Bước 2: Bây giờ, hãy nói nếu bạn muốn chọn TODO với ID 1, bạn có thể sử dụng lệnh sau:

  • Bước 1: Trong chương trình Xóa.js này, bạn sẽ xóa một hàng trong bảng Todos trên cơ sở ID Row ID:: In this delete.js program, you will be deleting a row in the todos table on the basis of the row’s id:
CREATE DATABASE todoapp;
5
  • 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 xóa. Khi bạn gọi phương thức truy vấn () trên đối tượng kết nối để thực hiện câu lệnh, bạn đã gửi dữ liệu đến câu lệnh Xóa dưới dạng đối số thứ hai. Người giữ chỗ sẽ được hoán đổi bởi giá trị đầu vào để ID sẽ nhận được giá trị 1 khi thực hiện truy vấn như sau:: For this example, you leveraged a placeholder within the DELETE statement. When you invoke the query() method on the connection object to carry out the statement, you sent the data to the DELETE statement as the second argument. The placeholder would be swapped by the input value so id will get the value 1 on the execution of the query as follows:
CREATE DATABASE todoapp;
6
  • Bước 3: Một điểm cần lưu ý ở đây là nếu bạn sở hữu nhiều người giữ chỗ, bạn sẽ phải chuyển một mảng cho truy vấn để gửi dữ liệu đến câu lệnh SQL. Bây giờ, để có được số lượng hàng bị xóa, bạn có thể có được thuộc tính bị ảnh hưởng của đối số kết quả. Tuy nhiên, trước khi thực hiện chương trình, hãy kiểm tra hàng với ID 1 trong bảng Todos:: A point to note here is that if you possess multiple placeholders, you would have to pass an array to the query to send the data to the SQL statement. Now, to obtain the number of rows deleted, you can obtain the affectedRows property of the results argument. However, before executing the program, check the row with id 1 within the todos table:
CREATE DATABASE todoapp;
7
  • Bước 4: Trong lệnh đã nói ở trên, số lượng 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ư hiển thị bên dưới:: In the aforementioned command, the number of deleted rows is 1. You can even verify it within the database by using the SELECT statement as shown below:
CREATE DATABASE todoapp;
8

Điều này mô tả rằng hàng với ID 1 đã bị loại khỏi bảng Todos.

Tiền thưởng: Gọi/Chạy các quy trình lưu trữ MySQL bằng Node.js

  • Bước 1: Đối với quy trình này, trước tiên bạn sẽ tạo một bộ lọc thủ tục được lưu trữ để truy vấn các hàng từ bảng TODOS trên cơ sở giá trị thu được từ trường đã hoàn thành như sau:: For this process, you will first be creating a stored procedure filterTodo to query rows from the todos table on the basis of the value obtained from the completed field as follows:
CREATE DATABASE todoapp;
9
  • Bước 2: Quy trình đượ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ố đã thực hiện. Vì vậy, nếu đối số đã thực hiện là đúng, câu lệnh sẽ trả về tất cả các TODO đã hoàn thành. Nếu đối số được thực hiện là sai, tuyên bố này sẽ trả về tất cả các TODO còn dang dở.: The stored procedure created above will return the rows within the todos table on the basis of the done argument. So, if the done argument is true, the statement will return all the completed todos. If the done argument is false, this statement will return all the unfinished todos.
  • Bước 3: Kiến thức phổ biến là bạn có thể gọi một quy trình đượ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 quy trình được lưu trữ ‘FilterTodo, bạn có thể thực hiện đoạn mã sau:: It is common knowledge that you can call a stored procedure within MySQL by leveraging the CALL statement. For instance, if you wish to call the ‘filterTodo’ stored procedure, you can carry out the following code snippet:
let mysql = require('mysql');
0
  • Bước 4: Câu lệnh đã nói ở trên sẽ trả về tập kết quả sau:: The aforementioned statement will return the following result set:
let mysql = require('mysql');
1
  • Bước 5: Chương trình StoredProc.js được đề cập bên dưới gọi quy trình được lưu trữ ‘FilterTodo, và cung cấp cho bạn bộ kết quả được đặt:: The storedproc.js program mentioned below calls the ‘filterTodo’ stored procedure and gives you back the result set:
let mysql = require('mysql');
2
  • Bước 6: Chương trình sử dụng mô -đun config.js như được đề cập trong các bước được đưa ra ở trên. Trong tuyên bố cuộc gọi, bạn tận dụng một trình giữ chỗ để di chuyển dữ liệu đến quy trình được lưu trữ.: The program uses the config.js module as mentioned in the steps given above. In the CALL statement, you leverage a placeholder to move data to the stored procedure.

    Khi bạn gọi phương thức truy vấn () trên đối tượng kết nối, bạn sẽ di chuyển giá trị của đối số đã thực hiện dưới dạng đối số thứ hai của phương thức truy vấn (). Bây giờ, nếu bạn chạy chương trình StoredProc.js, thì đây là kết quả sẽ như thế nào:

let mysql = require('mysql');
3

Đú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 khi 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 các 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 bộ nguồn dữ liệu đa dạng để thực hiện một phân tích sâu sắc có thể là một thách thức, và đây là nơi Hevo tiết kiệm trong ngày! 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 các ứng dụng SaaS như MySQL vào kho dữ liệu của bạn để được hiển thị trong một công cụ BI. Hevo hoàn toàn tự động và do đó không yêu cầu bạn mã hóa.Hevo saves the day! Hevo offers a faster way to move data from Databases or SaaS applications like MySQL into your Data Warehouse to be visualized in a BI tool. Hevo is fully automated and hence does not require you to code.

Ghé thăm trang web của chúng tôi để khám phá Hevo

Bạn muốn đưa Hevo cho một vòng quay?

Đăng ký và trải nghiệm bộ Hevo giàu tính năng đầu tiên. Bạn cũng có thể xem xét giá vô địch sẽ giúp bạn chọn đúng kế hoạch cho nhu cầu kinh doanh của mình.