Node.js 和 Express.js 结合 MySQL 数据库的示例

以下是一个简单的 Node.js 和 Express.js 结合 MySQL 数据库的示例,用于演示如何使用 Node.js 和 Express.js 在服务器端创建一个 REST API 接口。

以下操作需要确保你的电脑安装了: node 环境和mysql 环境

  1. 安装依赖模块

使用以下命令安装 expressbody-parsermysql 模块:

win+R键盘打开终端
输入:
1、mkdir demo  新建demo文件夹
2、cd demo   进入demo文件夹的路径

//初始化项目,执行 npm init -y 命令后,npm 会自动创建一个 package.json 文件,其中包含一些默认配置,如项目名称、版本、作者等。开发者可以在之后根据实际情况修改这些配置信息,并在其中添加项目所需的依赖
3、npm init -y    

// 安装node项目所需的依赖
4、npm install express body-parser mysql --save
  1. 创建 Express 应用程序

在根目录下创建一个名为 server.js 的文件,并编写如下代码:

const express = require('express');
const bodyParser = require('body-parser');
const mysql = require('mysql');

const app = express();
app.use(bodyParser.json());

const connection = mysql.createConnection({
  host: 'localhost',  
  //数据库用户名
  user: 'root',  
  //数据库密码
  password: 'password',
  //需要操作的数据库名字
  database: 'my_db'
});

connection.connect(err => {
  if (err) {
    console.log('Error connecting to Database');
    return;
  }
  console.log('Connected to Database');
});

// 允许跨域访问
app.use((req, res, next) => {
    res.header('Access-Control-Allow-Origin', '*');
    res.header('Access-Control-Allow-Headers', 'Content-Type,Content-Length, Authorization, Accept,X-Requested-With');
    res.header('Access-Control-Allow-Methods', 'GET,POST,PUT,DELETE');
    if (req.method == "OPTIONS") {
        res.sendStatus(200);
    } else {
        next();
    }
});


app.get('/api/users', (req, res) => {
  const sql = 'SELECT * FROM user';
  connection.query(sql, (err, results, fields) => {
    if (err) {
      console.log('Error while querying database');
      return;
    }
    res.json(results);
  });
});

app.post('/api/users', (req, res) => {
  const user = req.body;
  const sql = 'INSERT INTO user SET ?';
  connection.query(sql, user, (err, results, fields) => {
    if (err) {
      console.log('Error while inserting data');
      return;
    }
    res.json(results);
  });
});

app.put('/api/users/:id', (req, res) => {
  const id = req.params.id;
  const user = req.body;
  const sql = 'UPDATE user SET ? WHERE id = ?';
  connection.query(sql, [user, id], (err, results, fields) => {
    if (err) {
      console.log('Error while updating data');
      return;
    }
    res.json(results);
  });
});

app.delete('/api/users/:id', (req, res) => {
  const id = req.params.id;
  const sql = 'DELETE FROM user WHERE id = ?';
  connection.query(sql, id, (err, results, fields) => {
    if (err) {
      console.log('Error while deleting data');
      return;
    }
    res.json(results);
  });
});

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

以上代码中req和res的区别:

req对象

  • 代表着来自客户端的请求信息,其中包括请求头,请求参数和请求体等信息;
  • 可以被用于从HTTP请求中取出请求头、参数和体等数据;
  • req对象是只读的,不应该手动修改它的属性;
  • req对象通常在回调函数中使用;

res对象

  • 代表着要返回给客户端的响应信息,包括相应的状态码、响应头和响应体等信息;
  • 可以使用它的方法将响应体/数据发送给客户端;
  • res对象拥有一组状态码,用于响应请求结果,如200代表成功,404代表未找到等;
  • res对象同样是只读的;

以上代码创建了一个 Express 应用程序,并在 /api/users 路径下创建了 REST API 接口,包含获取所有用户、添加用户、修改用户和删除用户这四种操作。

  1. 运行应用程序

在终端中运行以下命令启动应用程序:

node server.js
  1. 访问应用程序

使用 HTTP 客户端(如 Postman)访问以下地址,测试接口是否正常:

  • 获取所有用户:http://localhost:3000/api/users
  • 添加用户:http://localhost:3000/api/users,类型为 POST,请求体为 JSON 格式的用户信息
  • 修改用户:http://localhost:3000/api/users/{id},类型为 PUT,请求体为 JSON 格式的用户信息
  • 删除用户:http://localhost:3000/api/users/{id},类型为 DELETE

以上是一个简单的 Node.js 和 Express.js 结合 MySQL 数据库的使用示例。在实际开发中,可以根据需求对代码进行修改和扩展。

你可能感兴趣的:(数据库,node.js,express)