MySQL 和 Node.js 的结合,为开发者提供了一种强大且灵活的解决方案,使得构建高性能的网页应用成为可能
本文将详细介绍如何利用 MySQL 作为后端数据库,结合 Node.js及其生态系统,实现一个能够返回动态页面的系统
一、引言:MySQL 和 Node.js 的优势 - MySQL 作为一款开源的关系型数据库管理系统(RDBMS),以其高性能、可靠性和易用性,在各类应用系统中得到了广泛应用
MySQL 支持大量的并发连接,并且拥有丰富的 SQL语句支持,使得数据操作变得高效而灵活
- Node.js 则是一个基于 Chrome V8 引擎的 JavaScript 运行环境,它允许开发者使用 JavaScript编写服务器端代码
Node.js 的非阻塞 I/O 模型和事件驱动架构,使其在处理高并发请求时具有显著优势
此外,Node.js 拥有庞大的第三方模块生态系统(npm),几乎涵盖了开发所需的所有功能
二、技术栈选择 在构建动态网页返回系统时,技术栈的选择至关重要
以下是我们将要使用的技术栈: 1.Node.js:作为服务器端运行环境,负责处理 HTTP 请求和响应
2.Express.js:一个轻量级的 Node.js Web 应用框架,提供了路由、中间件等核心功能
3.MySQL:作为后端数据库,存储和管理应用数据
4.Sequelize:一个基于 promise 的 Node.js ORM(对象关系映射)框架,用于简化 MySQL 数据库操作
5.EJS(Embedded JavaScript):作为模板引擎,用于生成动态 HTML 页面
三、项目初始化 1.安装 Node.js 和 npm: 首先,确保你的开发环境中已经安装了 Node.js 和 npm
你可以通过访问【Node.js官网】(https://nodejs.org/) 下载并安装最新版本
2.创建项目目录并初始化: bash mkdir mysql-node-webpage cd mysql-node-webpage npm init -y 3.安装项目依赖: bash npm install express mysql2 sequelize ejs 四、数据库设置 1.创建 MySQL 数据库: 使用 MySQL客户端工具(如 MySQL Workbench 或命令行工具)创建一个新的数据库,例如`webpage_db`
2.定义 Sequelize 模型: 在项目目录中创建一个`models`文件夹,并在其中定义一个示例模型,例如`User`
javascript // models/user.js const{ DataTypes, Model} = require(sequelize); const sequelize = require(../config/database); class User extends Model{} User.init({ username:{ type: DataTypes.STRING, allowNull: false, unique: true }, email:{ type: DataTypes.STRING, allowNull: false, unique: true }, password:{ type: DataTypes.STRING, allowNull: false } },{ sequelize, modelName: User}); module.exports = User; 3.配置 Sequelize: 在项目根目录下创建一个`config`文件夹,并在其中创建一个`database.js` 文件,用于配置 Sequelize 连接
javascript // config/database.js const{ Sequelize} = require(sequelize); const sequelize = new Sequelize(webpage_db, root, your_password,{ host: localhost, dialect: mysql }); sequelize.authenticate() .then(() =>{ console.log(Connection has been established successfully.); }) .catch(err =>{ console.error(Unable to connect to the database:, err); }); module.exports = sequelize; 五、搭建 Express 服务器 1.创建 Express 服务器: 在项目根目录下创建一个`server.js` 文件,用于搭建 Express 服务器
javascript // server.js const express = require(express); const sequelize = require(./config/database); const User = require(./models/user); const path = require(path); const app = express(); // 设置模板引擎为 EJS app.set(view engine, ejs); app.set(views, path.join(__dirname, views)); //同步 Sequelize 模型 sequelize.sync(); //路由设置 app.get(/, async(req, res) =>{ const users = await User.findAll(); res.render(index,{ users}); }); app.get(/add,(req, res) =>{ res.render(add); }); app.post(/add, async(req, res) =>{ const{ username, email, password} = req.body; await User.create({ username, email, password}); res.redirect(/); }); const PORT = process.env.PORT ||3000; app.listen(PORT,() =>{ console.log(`Server is running on port${PORT}`); }); 2.创建 EJS 模板: 在项目根目录下创建一个`views`文件夹,并在其中创建`index.ejs` 和`add.ejs` 文件
html views/index.ejs -->