使用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,才能进入系统的问题,引起这个问题的原因比较多,今天小编在这里给大家列举了比…

【高级篇 / 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…

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* …

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. 设 为 的子集, 为 到 的映射, 为 到 的映射,如果 ,称为的开拓, 为 的限制&…

数据库高安全—审计追踪:传统审计统一审计

书接上文数据库高安全—角色权限:权限管理&权限检查,从权限管理和权限检查方面解读了高斯数据库的角色权限,本篇将从传统审计和统一审计两方面对高斯数据库的审计追踪技术进行解读。 4 审计追踪 4.1 传统审计 审计内容的记录方式通…

第三个Qt开发实例:利用之前已经开发好的LED驱动在Qt生成的界面中控制LED2的亮和灭

前言 上一篇博文 https://blog.csdn.net/wenhao_ir/article/details/145459006 中,我们是直接利用GPIO子系统控制了LED2的亮和灭,这篇博文中我们利用之前写好的LED驱动程序在Qt的生成的界面中控制LED2的亮和灭。 之前已经在下面两篇博文中实现了LED驱动…

解决aspose将Excel转成PDF中文变成方框的乱码问题

原文网址:解决aspose将Excel转成PDF中文变成方框的乱码问题_IT利刃出鞘的博客-CSDN博客 简介 本文介绍如何解决aspose将Excel转成PDF中文变成方框的乱码问题。 问题描述 用aspose将word、excel等转成PDF后,英文展示正常,但中文全部变成了…

vue-vite axios bug

axios-bug http proxy error Error: write ECONNABORTED 代码写法 一般baseURL不是单写前缀就可以了吗,为何要写死就不会出现以上错误,求解。

【Spring】_SpringBoot配置文件

目录 1.Spring Boot配置文件 1.1 Spring Boot 的配置文件类型及命名 1.2 properties和yml的优先级 2. properties配置文件 1.1 properties语法格式 1.2 自定义配置及配置文件的读取 1.3 properties的缺点 3. yml配置文件 3.1 yml语法格式 3.2 自定义配置及配置文件的…

实操给触摸一体机接入大模型语音交互

本文以CSK6 大模型开发板串口触摸屏为例,实操讲解触摸一体机怎样快速增加大模型语音交互功能,使用户能够通过语音在一体机上查询信息、获取智能回答及实现更多互动功能等。 在本文方案中通过CSK6大模型语音开发板采集用户语音,将语音数据传输…