Những điều cơ bản về cách làm việc với MySQL và Node

MySQL là một trong những cơ sở dữ liệu quan hệ phổ biến nhất trên thế giới. Tìm hiểu cách làm cho nó hoạt động với Node.js

MySQL là một trong những cơ sở dữ liệu quan hệ phổ biến nhất trên thế giới.

Tất nhiên, hệ sinh thái Node có một số gói khác nhau cho phép bạn giao tiếp với MySQL, lưu trữ dữ liệu, truy xuất dữ liệu, v.v.

Chúng tôi sẽ sử dụngmysqljs/mysql, một gói có hơn 12.000 sao GitHub và đã tồn tại trong nhiều năm.

Cài đặt gói Node mysql

Bạn cài đặt nó bằng cách sử dụng

npm install mysql

Khởi tạo kết nối với cơ sở dữ liệu

Trước tiên, bạn bao gồm gói:

const mysql = require('mysql')

và bạn tạo một kết nối:

const options = {
  user: 'the_mysql_user_name',
  password: 'the_mysql_user_password',
  database: 'the_mysql_database_name'
}
const connection = mysql.createConnection(options)

Bạn bắt đầu một kết nối mới bằng cách gọi:

connection.connect(err => {
  if (err) {
    console.error('An error occurred while connecting to the DB')
    throw err
  }
})

Các tùy chọn kết nối

Trong ví dụ trên,optionsđối tượng có 3 tùy chọn:

const options = {
  user: 'the_mysql_user_name',
  password: 'the_mysql_user_password',
  database: 'the_mysql_database_name'
}

Có nhiều thứ khác bạn có thể sử dụng, bao gồm:

  • host, tên máy chủ cơ sở dữ liệu, mặc định làlocalhost
  • port, the MySQL server port number, defaults to 3306
  • socketPath, được sử dụng để chỉ định một ổ cắm unix thay vì máy chủ và cổng
  • debug, theo mặc định bị tắt, có thể được sử dụng để gỡ lỗi
  • trace, theo mặc định được bật, in dấu vết ngăn xếp khi xảy ra lỗi
  • ssl, được sử dụng để thiết lập kết nối SSL với máy chủ (ngoài phạm vi của hướng dẫn này)

Thực hiện truy vấn CHỌN

Bây giờ bạn đã sẵn sàng để thực hiện một truy vấn SQL trên cơ sở dữ liệu. Truy vấn sau khi được thực thi sẽ gọi hàm gọi lại có chứa lỗi cuối cùng, kết quả và các trường.

connection.query('SELECT * FROM todos', (error, todos, fields) => {
  if (error) {
    console.error('An error occurred while executing the query')
    throw error
  }
  console.log(todos)
})

Bạn có thể chuyển các giá trị sẽ được tự động thoát:

const id = 223
connection.query('SELECT * FROM todos WHERE id = ?', [id], (error, todos, fields) => {
  if (error) {
    console.error('An error occurred while executing the query')
    throw error
  }
  console.log(todos)
})

Để chuyển nhiều giá trị, chỉ cần đặt nhiều phần tử hơn vào mảng mà bạn chuyển làm tham số thứ hai:

const id = 223
const author = 'Flavio'
connection.query('SELECT * FROM todos WHERE id = ? AND author = ?', [id, author], (error, todos, fields) => {
  if (error) {
    console.error('An error occurred while executing the query')
    throw error
  }
  console.log(todos)
})

Thực hiện truy vấn CHÈN

Bạn có thể vượt qua một đối tượng

const todo = {
  thing: 'Buy the milk'
  author: 'Flavio'
}
connection.query('INSERT INTO todos SET ?', todo, (error, results, fields) => {
  if (error) {
    console.error('An error occurred while executing the query')
    throw error
  }
})

Nếu bảng có khóa chính vớiauto_increment, giá trị của điều đó sẽ được trả lại trongresults.insertIdgiá trị:

const todo = {
  thing: 'Buy the milk'
  author: 'Flavio'
}
connection.query('INSERT INTO todos SET ?', todo, (error, results, fields) => {
  if (error) {
    console.error('An error occurred while executing the query')
    throw error
  }}
  const id = results.resultId
  console.log(id)
)

Đóng kết nối

Khi bạn cần ngắt kết nối với cơ sở dữ liệu, bạn có thể gọiend()phương pháp:

connection.end()

Điều này đảm bảo rằng mọi truy vấn đang chờ xử lý đều được gửi đi và kết nối được kết thúc một cách duyên dáng.

Tải xuống miễn phí của tôiSổ tay Node.js


Các hướng dẫn nút khác: