返回

用 Node.js 为 Express 项目搭建骨架

前端

Node.js 服务端开发探索之旅:构建 Express + MySQL 应用

如今,Node.js 在前端开发领域风靡一时。对于前端攻城师来说,掌握 Node.js 已不再是锦上添花,而是必备技能。Express 作为一款著名的 Node.js 框架,因其简洁性和灵活性而广受青睐。本文将带您踏上使用 Express 和 MySQL 构建中级服务端应用的旅程。我们不仅会使用 express-generator 来设置 Express 项目,还会逐步指导您完成连接数据库、定义数据模型、创建 REST API 路由以及执行 CRUD 操作。无论您是 Node.js 初学者还是经验丰富的开发人员,本指南都能助您轻松创建功能齐全的后端应用程序。

初识 Express + MySQL

在进入正文之前,我们先来简单了解一下 Express 和 MySQL。Express 是一个极简的 Node.js Web 应用程序框架,它提供了构建 REST API 和 Web 应用程序所需的基本工具。MySQL 则是一款开源关系型数据库管理系统,因其高性能、可靠性和可扩展性而备受推崇。两者结合使用,可以轻松构建出功能强大且可扩展的 Web 应用。

脚手架准备:搭建 Express 项目

要使用 Express 和 MySQL 构建应用程序,我们需要先创建一个项目脚手架。这里,我们将使用 express-generator 来简化这一过程。只需运行以下命令即可:

npx express-generator

按照提示选择项目名称和选项,即可创建一个基本的 Express 项目结构。项目创建完成后,就可以开始编写代码了。

畅游数据库:连接 MySQL

接下来,我们需要连接 MySQL 数据库。在项目中安装 mysql 包:

npm install mysql

然后在项目根目录的 config 文件夹中创建一个名为 database.js 的文件,并输入以下代码:

module.exports = {
  host: 'localhost',
  user: 'root',
  password: '',
  database: 'test'
};

请根据实际情况修改 host、user、password 和 database 的值。

数据建模:定义数据模型

现在,我们需要定义数据模型。在项目根目录的 models 文件夹中创建一个名为 User.js 的文件,并输入以下代码:

const Sequelize = require('sequelize');
const sequelize = require('../config/database');

const User = sequelize.define('User', {
  name: {
    type: Sequelize.STRING,
    allowNull: false
  },
  email: {
    type: Sequelize.STRING,
    allowNull: false
  },
  password: {
    type: Sequelize.STRING,
    allowNull: false
  }
});

module.exports = User;

这段代码定义了一个名为 User 的数据模型,其中包含 name、email 和 password 三个属性。

路由构建:创建 REST API 路由

接下来,我们需要创建 REST API 路由。在项目根目录的 routes 文件夹中创建一个名为 user.js 的文件,并输入以下代码:

const express = require('express');
const router = express.Router();
const User = require('../models/User');

router.get('/', async (req, res) => {
  try {
    const users = await User.findAll();
    res.json(users);
  } catch (err) {
    res.status(500).json({ message: err.message });
  }
});

router.post('/', async (req, res) => {
  try {
    const user = await User.create(req.body);
    res.json(user);
  } catch (err) {
    res.status(500).json({ message: err.message });
  }
});

router.put('/:id', async (req, res) => {
  try {
    const user = await User.findByPk(req.params.id);
    if (!user) {
      return res.status(404).json({ message: 'User not found' });
    }
    await user.update(req.body);
    res.json(user);
  } catch (err) {
    res.status(500).json({ message: err.message });
  }
});

router.delete('/:id', async (req, res) => {
  try {
    const user = await User.findByPk(req.params.id);
    if (!user) {
      return res.status(404).json({ message: 'User not found' });
    }
    await user.destroy();
    res.json({ message: 'User deleted successfully' });
  } catch (err) {
    res.status(500).json({ message: err.message });
  }
});

module.exports = router;

这段代码定义了四个路由:

  • /users:获取所有用户
  • /users:创建新用户
  • /users/:id:更新指定 ID 的用户
  • /users/:id:删除指定 ID 的用户

启动应用:让代码运转起来

最后,我们需要启动应用程序。在项目根目录的 app.js 文件中,添加以下代码:

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

app.use(express.json());
app.use('/api/users', require('./routes/user'));

app.listen(port, () => {
  console.log(`Server is listening on port ${port}`);
});

这段代码将 Express 应用配置为使用 JSON 中间件,并使用 user.js 文件中的路由。然后,它将应用侦听 3000 端口上的传入连接。

收官之笔:运行应用

现在,您可以运行应用程序了。在项目根目录中,运行以下命令:

npm start

应用程序将在 3000 端口上启动。您可以使用 Postman 或类似工具来测试 API。

扬帆远航:踏上 Node.js 服务端开发之旅

恭喜您!您已经使用 Express 和 MySQL 构建了一个中级应用程序框架。通过本指南,您已经掌握了连接数据库、定义数据模型、创建 REST API 路由以及执行 CRUD 操作的基本知识。希望您能继续探索 Node.js 服务端开发的奥秘,并打造出更加强大的应用程序。