Node.js 访问 MySQL 数据库

要在 Node.js 中访问 MySQL 数据库,你可以使用不同的库,其中最流行的是 mysqlmysql2。这些库提供了一个简单的方法来与 MySQL 数据库交互。下面我将向你展示如何使用 mysql2 库连接到 MySQL 数据库并执行基本的操作。

第一步:安装 mysql2

首先,你需要安装 mysql2 库。可以通过 npm 安装:

npm install mysql2

第二步:设置数据库连接

接下来,创建一个文件来设置数据库连接。通常这个文件会包含你的数据库连接信息。

// db.js
const mysql = require('mysql2/promise');

const pool = mysql.createPool({
  host: 'your-host',
  user: 'your-username',
  database: 'your-database',
  password: 'your-password',
  waitForConnections: true,
  connectionLimit: 10,
  queueLimit: 0
});

module.exports = pool;

这里我们创建了一个连接池,它可以管理多个数据库连接,这对于提高应用程序的性能是非常有用的。

第三步:编写查询函数

然后,你可以编写一些函数来处理数据库操作,比如查询数据、插入数据等。

// queries.js
const pool = require('./db');

async function getUsers() {
  const [rows] = await pool.query('SELECT * FROM users');
  return rows;
}

async function addUser(user) {
  const [result] = await pool.query('INSERT INTO users SET ?', user);
  return result;
}

module.exports = {
  getUsers,
  addUser
};

在这个例子中,我们定义了两个异步函数:

  • getUsers 用于获取所有用户。
  • addUser 用于添加一个新用户。

第四步:使用查询函数

最后,在主应用程序文件中使用这些查询函数。

// app.js
const express = require('express');
const queries = require('./queries');

const app = express();
const port = 3000;

app.get('/users', async (req, res) => {
  try {
    const users = await queries.getUsers();
    res.json(users);
  } catch (error) {
    console.error(error);
    res.status(500).send('Error retrieving users');
  }
});

app.post('/users', async (req, res) => {
  const newUser = req.body; // Assuming you have middleware to parse JSON
  try {
    const result = await queries.addUser(newUser);
    res.json(result);
  } catch (error) {
    console.error(error);
    res.status(500).send('Error adding user');
  }
});

app.listen(port, () => {
  console.log(`Server is running on http://localhost:${port}`);
});

在这个示例中,我们使用 Express.js 框架创建了一个简单的 Web 服务器,它有两个路由:

  • /users 路由用于 GET 请求,返回所有的用户列表。
  • /users 路由用于 POST 请求,添加新的用户到数据库。

安全提示

  • SQL 注入:确保使用参数化查询来避免 SQL 注入攻击。
  • 环境变量:不要硬编码数据库凭据,而是使用环境变量来存储敏感信息。

运行示例

确保你的 MySQL 服务器正在运行,并且你已经创建了一个名为 users 的表。你可以使用任何 MySQL 客户端来创建表结构,例如:

CREATE TABLE users (
  id INT AUTO_INCREMENT PRIMARY KEY,
  name VARCHAR(255) NOT NULL,
  email VARCHAR(255) NOT NULL UNIQUE
);

然后启动你的 Node.js 应用程序:

node app.js

这就是一个基本的例子,你可以在此基础上扩展更多的功能,比如更新和删除记录等。如果你有更具体的需求或者遇到问题,请随时告诉我!

  • 3
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值