用 Node.js 为 Express 项目搭建骨架
2024-01-11 10:04:49
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 服务端开发的奥秘,并打造出更加强大的应用程序。