当前位置: 首页 > news >正文

node.js使用express框架实现api接口开发(从零开始,超简单可直接复制)

目录

一、效果图

二、实现

1、引入express框架依赖

2、 新建启动文件(/server/index.js)

3、新建接口函数文件(/server/router.js)


一、效果图

二、实现

1、引入express框架依赖

在项目文件夹根目录下,打开控制台cmd,输入以下命令:

npm install express --save

(ps:如果下载太慢,可以去安装npm淘宝镜像,使用cnpm下载) 

2、 新建启动文件(/server/index.js)

主要是接口的配置及实现

// 引入express服务依赖
const express = require('express')
const app = express()// express配置
app.use(express.json()) // 解析 JSON 格式的请求体数据(application/json)
app.use(express.urlencoded({extended: true})) // 解析 URL 编码格式的请求体数据(application/x-www-form-urlencoded)// 添加接口目录文件【router.js】(接口函数所在目录)
const router = require('./router')
app.use('/', router)// 设置接口监听
const port = 8888
app.listen(port, () => {console.log('服务已启动,端口号: ' + port)
})

3、新建接口函数文件(/server/router.js)

主要是接口执行的规则,这里的思路是先接口守卫(初步过滤),然后演示不同类型的接口执行情况

const express = require('express')
const router = express.Router()/*** 接口过滤守卫(过滤黑白名单,已经权限验证等等)*  req 请求体*  res 返回体*  next 继续执行*/
router.use(function (req, res, next) {console.log('请求头(包含cookies):')console.log(req.headers)// 接口守卫过滤if (true) {// 继续执行接口next()} else {// 结束接口,返回结果res.end(JSON.stringify({code: 500,msg: '非法操作!'}))}})/*** post接口*/
router.post('/post_test', (req, res) => {console.log('请求体参数:')console.log(req.body)// 返回结果res.end(JSON.stringify({code: 200,msg: 'post请求成功!'}))})// get接口
router.get('/get_test', (req, res) => {console.log('请求体参数:')console.log(req.query)// 返回结果res.end(JSON.stringify({code: 200,msg: 'get请求成功!'}))})module.exports = router

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • MMGPL: 基于图提示学习的多模态医学数据分析 文献速递-大模型与多模态诊断阿尔茨海默症与帕金森疾病应用
  • 数字化转型升级探索(三)
  • C语言 ——— 文件指针以及文件的相关操作
  • QT C++ 判断字符串是否是一个数字
  • ‌U盘闪一下就没了?‌如何有效恢复数据
  • 在手机在线预览3D模型,是如何实现的?
  • 【STM32】写Keil程序的注意事项
  • JSON数据格式介绍及如何在java中解析、转换、使用(fastjson工具类和hutools工具类使用教程)
  • 干部画像要包括什么
  • 大模型实战-FinGLM解析金融财报做RAG经验参考篇
  • 8月29日wpf
  • Spring Boot项目中集成Geth与以太坊区块链进行交互操作实例
  • 字典查找对应输入的字符
  • linux每个memory cgroup的lru链表是什么创建的
  • 11.舵机控制
  • Babel配置的不完全指南
  • mysql innodb 索引使用指南
  • SQLServer之创建数据库快照
  • WebSocket使用
  • 初探 Vue 生命周期和钩子函数
  • 大型网站性能监测、分析与优化常见问题QA
  • 等保2.0 | 几维安全发布等保检测、等保加固专版 加速企业等保合规
  • 反思总结然后整装待发
  • 工程优化暨babel升级小记
  • 工作中总结前端开发流程--vue项目
  • 关于for循环的简单归纳
  • 机器人定位导航技术 激光SLAM与视觉SLAM谁更胜一筹?
  • 经典排序算法及其 Java 实现
  • 如何胜任知名企业的商业数据分析师?
  • 用mpvue开发微信小程序
  • PostgreSQL之连接数修改
  • ​LeetCode解法汇总2670. 找出不同元素数目差数组
  • ​十个常见的 Python 脚本 (详细介绍 + 代码举例)
  • ‌移动管家手机智能控制汽车系统
  • #NOIP 2014# day.2 T2 寻找道路
  • (160)时序收敛--->(10)时序收敛十
  • (9)YOLO-Pose:使用对象关键点相似性损失增强多人姿态估计的增强版YOLO
  • (C++17) std算法之执行策略 execution
  • (env: Windows,mp,1.06.2308310; lib: 3.2.4) uniapp微信小程序
  • (poj1.2.1)1970(筛选法模拟)
  • (二)PySpark3:SparkSQL编程
  • (三)mysql_MYSQL(三)
  • (十八)用JAVA编写MP3解码器——迷你播放器
  • (十五)使用Nexus创建Maven私服
  • (算法)硬币问题
  • (一)基于IDEA的JAVA基础12
  • (转)Windows2003安全设置/维护
  • * 论文笔记 【Wide Deep Learning for Recommender Systems】
  • ../depcomp: line 571: exec: g++: not found
  • .[hudsonL@cock.li].mkp勒索病毒数据怎么处理|数据解密恢复
  • .cn根服务器被攻击之后
  • .Net Core 笔试1
  • .NET Core引入性能分析引导优化
  • .NET4.0并行计算技术基础(1)
  • .net对接阿里云CSB服务