使用Node.js搭配express框架快速构建后端业务接口模块Demo

使用Node.js搭配express框架快速构建后端业务接口模块Demo!实际开发中,有很多项目,其实都是可以使用node.js来完成对接mysql数据库的,express确实使用起来非常简单,入手快,效率非常高。下面是一个简单的案例,帮助大家快速掌握了解,如何构建自己的后端管理模块。


1:

步骤 1:初始化项目
  1. 在命令行中进入你想要创建项目的文件夹,运行:

    mkdir my-express-backend
    cd my-express-backend
    npm init -y
    

    步骤 2:安装 Express

    安装 express 和其他必要的依赖:

    npm install express mysql2 body-parser cors

这个速度很快,几秒钟就可以按照完成了。非常快捷。


2:

  • express:核心框架
  • mysql2:连接 MySQL 数据库
  • body-parser:解析请求体,常用来解析 POST 请求的数据
  • cors:跨域资源共享,允许你的前端与后端进行跨域请求

步骤 3:创建 index.js 文件

在项目根目录下创建 index.js 文件,这是 Express 服务器的入口。

touch index.js

步骤 4:编写 Express 服务器代码

打开 index.js 文件并写入以下代码:

// 引入依赖
const express = require('express');
const mysql = require('mysql2');
const cors = require('cors');
const bodyParser = require('body-parser');// 创建 Express 实例
const app = express();
const port = 3000;// 允许跨域请求
app.use(cors());// 解析 JSON 请求体
app.use(bodyParser.json());// 创建数据库连接池
const db = mysql.createPool({host: 'localhost',     // 数据库主机user: 'root',          // 数据库用户名password: 'password',  // 数据库密码database: 'lost_and_found', // 数据库名称
});// 测试数据库连接
db.getConnection((err, connection) => {if (err) {console.error('Database connection failed:', err.stack);return;}console.log('Connected to database as ID', connection.threadId);connection.release();
});// 创建一个简单的 API 端口,返回 Hello World
app.get('/', (req, res) => {res.send('Hello World!');
});// 获取当前数据库中所有帖子
app.get('/posts', (req, res) => {const query = 'SELECT * FROM posts';db.query(query, (err, results) => {if (err) {console.error('Error fetching posts:', err);return res.status(500).json({ message: 'Error fetching posts' });}res.json(results);});
});// 获取帖子的数量
app.get('/posts/count', (req, res) => {const query = 'SELECT COUNT(*) AS count FROM posts';db.query(query, (err, results) => {if (err) {console.error('Error fetching posts count:', err);return res.status(500).json({ message: 'Error fetching posts count' });}res.json({ count: results[0].count });});
});// 用户注册 API
app.post('/register', (req, res) => {const { username, email, password } = req.body;const query = 'INSERT INTO users (username, email, password) VALUES (?, ?, ?)';db.query(query, [username, email, password], (err, result) => {if (err) {console.error('Error registering user:', err);return res.status(500).json({ message: 'Error registering user' });}res.status(201).json({ message: 'User registered successfully' });});
});// 启动服务器
app.listen(port, () => {console.log(`Server running on http://localhost:${port}`);
});

3. 启动 Express 后端服务器
node index.js

在项目根目录下,执行以下命令启动服务器:执行这个指令,即可打开服务器端程序了。我们简单的测试一下,入下图所示:



说明,这个测试接口是我自己写的,地址,你可以自己改成自己喜欢的地址,自己测试。


4. 数据库设置

确保你已经在 MySQL 中创建了数据库和表,并配置好数据库连接。

创建数据库和表

假设你的数据库叫做 lost_and_found,你可以执行以下 SQL 来创建表:

CREATE DATABASE lost_and_found;USE lost_and_found;CREATE TABLE users (id INT AUTO_INCREMENT PRIMARY KEY,username VARCHAR(255) NOT NULL,email VARCHAR(255) NOT NULL,password VARCHAR(255) NOT NULL,created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);CREATE TABLE posts (id INT AUTO_INCREMENT PRIMARY KEY,user_id INT NOT NULL,title VARCHAR(255) NOT NULL,description TEXT NOT NULL,created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,FOREIGN KEY (user_id) REFERENCES users(id)
);

5. 测试后端 API

在浏览器或者 Postman 中,你可以访问以下 URL 来测试后端功能:

  • http://localhost:3000/:测试是否能访问到 Hello World。
  • http://localhost:3000/posts:获取所有帖子数据。
  • http://localhost:3000/posts/count:获取帖子数量。

6. 使用 Postman 测试注册 API

你可以使用 Postman 测试用户注册接口。请求方法是 POST,URL 是 http://localhost:3000/register,请求体(Body)格式为 JSON:

{"username": "testuser","email": "test@example.com","password": "testpassword"
}
7. 扩展功能

在完成基础的 Express 后端搭建后,你可以继续扩展功能,加入更多的 API 端点,例如:

  • 用户登录和身份验证(JWT)
  • 发布帖子、删除帖子等
  • 用户积分管理
  • 黑名单功能等

8. 部署到生产环境

当你完成本地开发和测试后,下一步就是将 Express 后端部署到生产环境。可以使用一些常见的部署方式,例如:

  • Heroku:一个简单的云平台服务,适合小型应用。
  • DigitalOcean、AWS EC2:适合需要更多控制的应用,可以配置自己的服务器。
  • Docker:如果你使用 Docker,可以将应用容器化并在任何支持 Docker 的平台上运行。


9. 总结
  1. 初始化项目:使用 npm init 创建 package.json
  2. 安装依赖:安装 Express、MySQL 以及其他依赖。
  3. 编写服务器代码:创建 Express 实例,连接 MySQL,并定义 API。
  4. 测试后端功能:使用浏览器或 Postman 测试后端 API。
  5. 扩展功能:添加用户身份验证、发布帖子等功能。
  6. 部署到生产:使用 Heroku 或其他平台将你的应用部署到生产环境。

这样,你就完成了一个基本的 Express 后端搭建。随着项目的进展,你可以逐步增加更多的功能和优化。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/69227.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Python----Python高级(并发编程:协程Coroutines,事件循环,Task对象,协程间通信,协程同步,将协程分布到线程池/进程池中)

一、协程 1.1、协程 协程,Coroutines,也叫作纤程(Fiber) 协程,全称是“协同程序”,用来实现任务协作。是一种在线程中,比线程更加轻量级的存在,由程序员自己写程序来管理。 当出现IO阻塞时,…

Unity 加载OSGB(webgl直接加载,无需转换格式!)

Unity webgl加载倾斜摄影数据 前言效果图后续不足 前言 Unity加载倾斜摄影数据,有很多的插件方便好用,但是发布到网页端均失败,因为webgl 的限制,IO读取失效。 前不久发现一个开源项目: UnityOSGB-main 通过两种方式在 Unity 中…

【Block总结】PSA,金字塔挤压注意力,解决传统注意力机制在捕获多尺度特征时的局限性

论文信息 标题: EPSANet: An Efficient Pyramid Squeeze Attention Block on Convolutional Neural Network论文链接: arXivGitHub链接: https://github.com/murufeng/EPSANet 创新点 EPSANet提出了一种新颖的金字塔挤压注意力(PSA)模块,旨…

【重新认识C语言----结构体篇】

目录 -----------------------------------------begin------------------------------------- 引言 1. 结构体的基本概念 1.1 为什么需要结构体? 1.2 结构体的定义 2. 结构体变量的声明与初始化 2.1 声明结构体变量 2.2 初始化结构体变量 3. 结构体成员的访…

如何在Vscode中接入Deepseek

一、获取Deepseek APIKEY 首先,登录Deepseek官网的开放平台:DeepSeek 选择API开放平台,然后登录Deepseek后台。 点击左侧菜单栏“API keys”,并创建API key。 需要注意的是,生成API key复制保存到本地,丢失…

电脑开机提示按f1原因分析及终极解决方法来了

经常有网友问到一个问题,我电脑开机后提示按f1怎么解决?不管理是台式电脑,还是笔记本,都有可能会遇到开机需要按F1,才能进入系统的问题,引起这个问题的原因比较多,今天小编在这里给大家列举了比…

AI协助探索AI新构型自动化创新的技术实现

一、AI自进化架构的核心范式 1. 元代码生成与模块化重构 - 代码级自编程:基于神经架构搜索的强化学习框架,AI可通过生成元代码模板(框架的抽象层定义、神经元结点-网络拓扑态的编码抽象定义)自动组合功能模块。例如&#xff0…

RAID独立硬盘冗余阵列

目录 一、RAID基本功能 二、RAID常见级别 三、实现方式 1、软件磁盘阵列 2、硬件磁盘阵列 四、热备盘 RAID(Redundant Array of Independent Disks)是一种通过将多个硬盘组合成一个逻辑单元来提升存储性能、冗余性或两者兼具的技术。 一、RAID基本…

【高级篇 / IPv6】(7.2) ❀ 04. 在60E上配置ADSL拨号宽带上网(IPv4) ❀ FortiGate 防火墙

【简介】除了单位用户以外,大部分个人用户目前使用的仍然是30E、50E、60E系列防火墙,固件无法达到目前最高版本7.6,这里以最常用的60E为例,演示固件版本7.2下实现ADSL拨号宽带的IPv6上网。由于内容比较多,文章分上、下…

Qt之设置QToolBar上的按钮样式

通常给QAction设置icon后,菜单栏的菜单项和工具栏(QToolBar)上对应的按钮会同时显示该icon。工具栏还可以使用setToolButtonStyle函数设置按钮样式,其参数为枚举值: enum ToolButtonStyle {ToolButtonIconOnly,ToolButtonTextOnly,ToolButtonTextBesideIcon,ToolButtonTe…

【从零开始系列】DeepSeek-R1:(本地部署使用)思维链推理大模型,开源的神!——Windows/Linux本地环境测试 + vLLM远程部署服务

目录 一、环境配置 1.硬件设备评估 2.基础环境安装 3.模型参数下载 (1) huggingface镜像源下载 (2) modelscope魔搭社区下载 (推荐) 二、基础使用(Linux、Window兼容) 1.Transformers库自编代码 三、进阶使用(仅Lin…

DeepSeek 开源模型全解析(2024.1.1–2025.2.6)

目录 一、通用大语言模型:DeepSeek-V3 系列 137 二、推理优化模型:DeepSeek-R1 系列 811 三、多模态模型:Janus 系列 10 四、生态整合与部署建议 五、总结与展望 以下为 DeepSeek 在 2024 年 1 月至 2025 年 2 月期间发布的开源模型及其…

Mac: docker安装以后报错Command not found: docker

文章目录 前言解决办法(新的)解决步骤(原来的)不推荐总结 前言 ​本操作参考 http://blog.csdn.net/enhenglhm/article/details/137955756 原作者,更详细请,查看详细内容请关注原作者。 一般,…

《手札·开源篇》数字化转型助力永磁电机企业降本增效:快速设计软件如何让研发效率提升40%?

数字化转型助力永磁电机企业降本增效:快速设计软件如何让研发效率提升40%? 一、痛点:传统研发模式正在吃掉企业的利润 永磁电机行业面临两大挑战: 研发周期长:一款新电机从设计到量产需6-12个月,电磁计算…

0207作业

思维导图 服务器 enum Type{TYPE_REGIST,TYPE_LOGIN };typedef struct Pack{int size;enum Type type;char buf[2048];}pack_t;typedef struct list{union Data{struct List* tail;char str[64];}data;struct List* next;struct List* prev; }List;List* create_node(){List* …

深入浅出 DeepSeek V2 高效的MoE语言模型

今天,我们来聊聊 DeepSeek V2 高效的 MoE 语言模型,带大家一起深入理解这篇论文的精髓,同时,告诉大家如何将这些概念应用到实际中。 🌟 什么是 MoE?——Mixture of Experts(专家混合模型&#x…

RabbitMQ 从入门到精通:从工作模式到集群部署实战(五)

#作者:闫乾苓 系列前几篇: 《RabbitMQ 从入门到精通:从工作模式到集群部署实战(一)》:link 《RabbitMQ 从入门到精通:从工作模式到集群部署实战(二)》: lin…

nodejs:express + js-mdict 网页查询英汉词典,能播放.spx 声音

向 DeepSeek R1 提问: 我想写一个Web 前端网页,后台用 nodejs js-mdict , 实现在线查询英语单词,并能播放.spx 声音文件 1. 项目结构 首先,创建一个项目目录,结构如下: mydict-app/ ├── public/ │ …

Linux ftrace 内核跟踪入门

文章目录 ftrace介绍开启ftraceftrace使用ftrace跟踪指定内核函数ftrace跟踪指定pid ftrace原理ftrace与stracetrace-cmd 工具KernelShark参考 ftrace介绍 Ftrace is an internal tracer designed to help out developers and designers of systems to find what is going on i…

【抽象代数】1.1. 运算及关系

集合与映射 定义1. 设 为 的子集,定义 到 的映射 : 使得 ,称 为 到 的嵌入映射。 定义2. 设 为 的子集, 为 到 的映射, 为 到 的映射,如果 ,称为的开拓, 为 的限制&…