大事件项目 api_server

news/2024/11/23 3:47:31/

Headline

大事件后台 API 项目, API 接口文档请参考 https://www.showdoc.cc/escook?page_id=3707158761 215217

1. 初始化

1.1 创建项目

1. 新建 api_server 文件夹作为项目根目录,并在项目根目录中运行如下的命令,初始化包管理配置文件:

npm init -y

2. 运行如下的命令,安装特定版本的 express

npm i express@4.17.1

3. 在项目根目录中新建 app.js 作为整个项目的入口文件,并初始化如下的代码:

// 导入 express 模块
const express = require('express')// 创建 express 的服务器实例
const app = express()// write your code here ...// 调用 app.listen 方法,指定端口号并启动web服务器
app.listen(3007, function () {console.log('api server running at http://127..0.1:3007')
})

1.2 配置 cors 跨域

1. 运行如下的命令,安装 cors 中间件:

npm i cors@2.8.5

2. app.js 中导入并配置 cors 中间件:

// 导入 cors 中间件
const cors = require('cors')// 将 cors 注册为全局中间件
app.use(cors())

1.3 配置解析表单数据的中间件

1. 通过如下的代码,配置解析 application/x-www-form-urlencoded 格式的表单数据的中间件:

app.use(express.urlencoded({ extended: false }))

1.4 初始化路由相关的文件夹

1. 在项目根目录中,新建 router 文件夹,用来存放所有的 路由 模块

路由模块中,只存放客户端的请求与处理函数之间的映射关系

2. 在项目根目录中,新建 router_handler 文件夹,用来存放所有的 路由处理函数模块

路由处理函数模块中,专门负责存放每个路由对应的处理函数

1.5 初始化用户路由模块

1. router 文件夹中,新建 user.js 文件,作为用户的路由模块,并初始化代码如下:

const express = require('express')// 创建路由对象
const router = express.Router()// 注册新用户
router.post('/reguser', (req, res) => {res.send('reguser OK')
})// 登录
router.post('/login', (req, res) => {res.send('login OK')
})// 将路由对象共享出去
module.exports = router

2. app.js 中,导入并使用 用户路由模块

// 导入并注册用户路由模块
const userRouter = require('./router/user')
app.use('/api', userRouter)

1.6 抽离用户路由模块中的处理函数

目的:为了保证 路由模块 的纯粹性,所有的 路由处理函数 ,必须抽离到对应的 路由处理函数模块

1. /router_handler/user.js 中,使用 exports 对象,分别向外共享如下两个 路由处理函数

/*** 在这里定义和用户相关的路由处理函数,供 /router/user.js 模块进行调用*/// 注册用户的处理函数
exports.regUser = (req, res) => {res.send('reguser OK')
}// 登录的处理函数
exports.login = (req, res) => {res.send('login OK')
}

2. /router/user.js 中的代码修改为如下结构:

const express = require('express')
const router = express.Router()// 导入用户路由处理函数模块
const userHandler = require('../router_handler/user')// 注册新用户
router.post('/reguser', userHandler.regUser)// 登录
router.post('/login', userHandler.login)
module.exports = router

2. 登录注册

2.1 新建 ev_users

1. my_db_01 数据库中,新建 ev_users 表如下:

2.2 安装并配置 mysql 模块

API 接口项目中,需要安装并配置 mysql 这个第三方模块,来连接和操作 MySQL 数据库

1. 运行如下命令,安装 mysql 模块:

npm i mysql@2.18.1


http://www.ppmy.cn/news/1114354.html

相关文章

CocosCreator3.8研究笔记(十八)CocosCreator UI组件(二)

前面的文章已经介绍了Canvas 组件、UITransform 组件、Widget 组件 。 想了解的朋友,请查看 CocosCreator3.8研究笔记(十七)CocosCreator UI组件(一)。 今天我们主要介绍CocosCreator 常用容器组件:Layout …

【LeetCode每日一题合集】2023.9.11-2023.9.17(⭐反悔贪心拓扑排序Floyd)

文章目录 630. 课程表 III解法——反悔贪心⭐⭐⭐⭐⭐ 1462. 课程表 IV⭐解法1——拓扑排序预处理解法2——Floyd算法判断是否存在路径 2596. 检查骑士巡视方案(方向模拟)1222. 可以攻击国王的皇后(方向模拟)LCP 50. 宝石补给&…

uniapp cors错误

CORS(跨源资源共享)错误通常出现在前端应用程序尝试从不同源(域)请求数据时。这些错误是出于安全考虑而存在的,以防止潜在的恶意攻击。如果你在UniApp中遇到CORS错误,可以尝试以下解决方法: 检查…

利用fiddler正向代理前端请求到本地后端

前景:在实际开发测试环境中,(前后端均已上线到测试服务器或前端以上线而后端还在开发中)。在测试过程中(前端页面点击,功能测试)发现了bug或异常点。 正常排查问题可能是先利用浏览器检查工具查看接口的返回…

资料可下载!别抛弃ERP,他才是你数字化转型的关键!(含选型、搭建、用好的实用建议)

我们汽车工业企业为什么要做数字化转型?是追求更高质量的发展?是追求更好的利润?是担负更多的社会责任?答案也许有很多很多。 但数字化转型,最重要的一点是:汽车工业企业在不断的发展中会不断遇到新的问题…

【Java 基础篇】Java 字节流详解:从入门到精通

Java中的字节流是处理二进制数据的关键工具之一。无论是文件操作、网络通信还是数据处理,字节流都发挥着重要作用。本文将从基础概念开始,深入探讨Java字节流的使用,旨在帮助初学者理解和掌握这一重要主题。 什么是字节流? 在Ja…

关于Qt适配不同分辨率和缩放率时可能遇到的问题和解决方案

如果没有特殊的处理,Qt的UI窗口在不同的分辨率和缩放率下,其显示效果可能会出现问题,常见的有: 子控件堆叠,无法显示完整 窗口尺寸变大,超出屏幕的显示范围 控件变形,长宽比不合理 界面模糊 …

AIDL+MemoryFile匿名共享内存实现跨进程大文件传输

注:本文内容转载自如下文章:使用AIDL实现跨进程高效传输大文件 AIDL AIDL 是 Android 中实现跨进程通信(Inter-Process Communication)的一种方式。AIDL 的传输数据机制基于 Binder,Binder 对传输数据大小有限制,传输超过1M的文件…