在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;
确保替换yourUsername
、yourPassword
和yourDatabase
为你的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应用程序至关重要。