使用 Express.js 和 MySQL 构建 Web 应用程序

Express.js 是一个流行的 Node.js Web 框架,而 MySQL 是一种广泛使用的关系型数据库。本文将介绍如何结合使用 Express.js 和 MySQL 构建功能强大的 Web 应用程序。

一、安装和设置

首先,确保您已经安装了 Node.js 和 MySQL。然后,通过以下步骤设置项目

1.1 创建项目文件夹

创建一个名为 test_demo的文件夹,并在开发工具中打开。

1.2 初始化 npm:

复制代码
npm init -y

1.2.1 安装 Express.js 和 MySQL 模块

复制代码
npm install express mysql

1.3 创建一个新的 app.js 文件,并导入所需模块

javascript 复制代码
const express = require('express'); 
const mysql = require('mysql'); 
const app = express();

1.3.1 配置 MySQL 连接

javascript 复制代码
const connection = mysql.createConnection({ host: 'localhost', 
user: '数据库用户名', 
password: '数据库密码', 
database: '数据库名' }); 
connection.connect((err) => { 
    if (err) { 
        console.error('连接数据库失败: ', err); 
        return; 
    } 
    console.log('连接数据库成功!'); 
});

1.4 创建数据表

在数据库当中执行以下sql

sql 复制代码
CREATE TABLE users (
    id INT AUTO_INCREMENT PRIMARY KEY,
    name VARCHAR(50) NOT NULL,
    email VARCHAR(100) NOT NULL
);

二、创建路由和处理请求

现在,让我们创建一些路由来处理 Web 请求,并使用 MySQL 进行数据操作。以下是一个示例路由,用于获取和创建用户:

javascript 复制代码
app.get('/users', (req, res) => { 
    connection.query('SELECT * FROM users', (err, results) => { 
        if (err) { 
            console.error('Error retrieving users: ', err);                         
            res.status(500).send('Internal Server Error'); 
            return; 
        } 
        res.json(results); 
    }); 
}); 

app.post('/users', (req, res) => { 
    const { name, email } = req.body; 
    connection.query('INSERT INTO users (name, email) VALUES (?, ?)', 
        [name, email], (err, result) => { 
        if (err) { 
            console.error('Error creating user: ', err);             
            res.status(500).send('Internal Server Error'); 
            return; 
        } 
        res.status(201).json({ name, email }); 
    }); 
});

三、启动服务器

最后,我们需要启动 Express.js 服务器并监听指定的端口:

javascript 复制代码
const PORT = process.env.PORT || 3000; 
app.listen(PORT, () => { 
    console.log(`http://127.0.0.1:${PORT}`); 
});
相关推荐
XDHCOM15 分钟前
Redis远程连接命令详解,分享高效配置与安全实践技巧
前端·redis·安全
YAY_tyy2 小时前
Vue3 + Three.js 实战:自定义 3D 模型加载与交互全流程
前端·javascript·vue.js·threejs
星河耀银海2 小时前
3D效果:HTML5 WebGL结合AI实现智能3D场景渲染
前端·人工智能·深度学习·3d·html5·webgl
英俊潇洒美少年3 小时前
SSE 流式接口讲解
javascript
美狐美颜sdk7 小时前
从人脸关键点到动态贴图:面具特效在美颜SDK中的实现原理
前端·图像处理·人工智能·直播美颜sdk·美颜api
我命由我123457 小时前
React Router 6 - 编程式路由导航、useInRouterContext、useNavigationType
前端·javascript·react.js·前端框架·html·ecmascript·js
威联通网络存储8 小时前
告别掉帧与素材损毁:威联通 QuTS hero 如何重塑影视后期协同工作流
前端·网络·人工智能·python
anOnion8 小时前
构建无障碍组件之Tabs Pattern
前端·html·交互设计
一招定胜负9 小时前
课堂教学质量综合评分系统
java·linux·前端
橙露9 小时前
JavaScript 异步编程:Promise、async/await 从原理到实战
开发语言·javascript·ecmascript