在Web开发中,Express是一个流行的Node.js框架,而MySQL是一个常用的关系型数据库。将两者结合起来,可以实现强大的后端服务。本文将详细介绍如何在Express应用程序中高效地使用回调函数进行MySQL数据库操作。

安装MySQL和Express

首先,确保你的系统中已安装MySQL服务器。对于Express,你可以使用npm来安装它和MySQL的Node.js驱动程序。

npm install express mysql

配置数据库连接

在开始操作数据库之前,你需要配置数据库连接。这通常在一个名为db.js的文件中完成。

const mysql = require('mysql');

// 创建数据库连接
const connection = mysql.createConnection({
  host: 'localhost',
  user: 'yourUsername',
  password: 'yourPassword',
  database: 'yourDatabase'
});

// 连接到数据库
connection.connect(err => {
  if (err) throw err;
  console.log('Connected to the MySQL server.');
});

module.exports = connection;

确保替换yourUsernameyourPasswordyourDatabase为你的MySQL配置。

增加数据

以下是如何在Express中使用回调函数来插入新数据到MySQL数据库的例子。

const express = require('express');
const connection = require('./db');

const app = express();

app.post('/add', (req, res) => {
  const { name, email } = req.body;
  const sql = 'INSERT INTO users (name, email) VALUES (?, ?)';
  connection.query(sql, [name, email], (err, results) => {
    if (err) throw err;
    res.send('User added successfully.');
  });
});

app.listen(3000, () => {
  console.log('Server is running on port 3000.');
});

查询数据

查询数据通常涉及到使用SELECT语句。以下是如何使用回调函数来查询用户数据的例子。

app.get('/users', (req, res) => {
  const sql = 'SELECT * FROM users';
  connection.query(sql, (err, results) => {
    if (err) throw err;
    res.json(results);
  });
});

更新数据

更新数据可以通过UPDATE语句实现。下面是一个更新用户电子邮件的例子。

app.put('/update', (req, res) => {
  const { id, email } = req.body;
  const sql = 'UPDATE users SET email = ? WHERE id = ?';
  connection.query(sql, [email, id], (err, results) => {
    if (err) throw err;
    res.send('User email updated successfully.');
  });
});

删除数据

删除数据可以通过DELETE语句实现。下面是一个删除用户记录的例子。

app.delete('/delete/:id', (req, res) => {
  const { id } = req.params;
  const sql = 'DELETE FROM users WHERE id = ?';
  connection.query(sql, [id], (err, results) => {
    if (err) throw err;
    res.send('User deleted successfully.');
  });
});

关闭数据库连接

当你的应用程序结束时,确保关闭数据库连接。

process.on('exit', () => {
  connection.end();
});

通过以上步骤,你可以在Express应用程序中高效地使用回调函数进行MySQL数据库操作。记住,回调函数是Node.js和Express进行异步编程的基础,因此理解和掌握它们对于编写高效的Web应用程序至关重要。