简单用Nodejs + express 编写接口

在这里插入图片描述

文章目录

  • get接口示范
  • post接口示范
  • 注意点


准备工作可以看上一篇文章:文章链接》》

get接口示范

app.get('/', (req, res) => {res.send("Hello World");
})

在这里插入图片描述
因为是get接口,所以可以直接在浏览器上请求(端口地址+接口名)
在这里插入图片描述
多写几个 尝试一下:

app.get('/api/login', (req, res) => {res.send("api");
})

在这里插入图片描述

在这里插入图片描述

post接口示范

  1. 引入 Express 模块: 首先,确保已经安装 Express 模块并将其引入到你的应用程序中。
const express = require('express');
const app = express();
  1. 设置路由处理程序: 使用 app.post() 方法设置 POST 请求的路由处理程序。该方法接受两个参数,第一个参数是路由路径,第二个参数是处理请求的回调函数。
app.post('/login', (req, res) => {// 处理 POST 请求
});
  1. 解析请求体: 在处理 POST 请求之前,通常需要解析请求体中的数据。你可以使用 Express 内置的 express.json()express.urlencoded() 中间件来解析 JSON 格式和 URL 编码格式的请求体数据。
app.use(express.json()); // 解析 JSON 格式的请求体数据
app.use(express.urlencoded({ extended: true })); // 解析 URL 编码格式的请求体数据
  1. 处理请求: 在 POST 请求的路由处理程序中,你可以通过 req.body 对象访问请求体中的数据。根据请求体中的数据执行相应的操作。
app.post('/login', (req, res) => {const { username, password } = req.body;// 在这里执行验证用户名和密码的逻辑if (username === 'admin' && password === '123456') {res.send('登录成功');} else {res.status(401).send('用户名或密码错误');}
});
  1. 启动服务器: 最后,使用 app.listen() 方法启动 Express 服务器,并指定监听的端口号。
app.listen(3000, () => {console.log('Server is running on port 3000');
});

这样,你的 Express 应用程序就能够处理 POST 请求了。记得根据你的实际需求,进行相应的处理和验证逻辑。

注意点

当使用 Node.js 和 Express 编写接口时,有几个注意点需要考虑:

  1. 错误处理: 确保在你的应用程序中实现了良好的错误处理机制。这包括捕获并处理同步和异步错误,以及返回适当的错误状态码和错误消息给客户端。

  2. 安全性: 考虑安全性是非常重要的。避免使用过时的依赖项,及时更新依赖项以修复可能存在的安全漏洞。另外,确保对用户输入进行验证和清理,以防止常见的安全问题,如 SQL 注入、跨站点脚本(XSS)等。

  3. 中间件: Express 中间件是扩展框架功能的一种强大方式。合理地使用中间件可以简化代码、增强安全性、提高性能等。但要注意中间件的顺序,确保它们按照正确的顺序执行。

  4. 路由组织: 良好的路由组织可以使代码更易于维护和理解。考虑将路由分割成多个文件,并使用 Express 的 Router 功能来组织和管理它们。

  5. 日志记录: 记录请求和响应信息对于故障排除和监控应用程序性能非常重要。使用适当的日志记录工具或中间件来记录请求、响应和错误信息。

  6. 性能优化: 考虑性能优化是至关重要的。这包括使用适当的缓存机制、压缩响应数据、使用 CDN 加速静态资产等。另外,确保适当地使用异步操作和避免阻塞操作,以提高应用程序的响应性能。

  7. 测试: 编写单元测试和集成测试是确保应用程序质量的重要手段。使用测试框架来编写和运行测试,并确保测试覆盖了应用程序的各个方面。

  8. 版本控制: 使用版本控制系统(如 Git)来管理代码,并定期提交和推送代码更改。这样可以确保团队成员之间的协作,并使代码更易于追踪和恢复。

您好,我是肥晨。
欢迎关注我获取前端学习资源,日常分享技术变革,生存法则;行业内幕,洞察先机。

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

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

相关文章

测开面经(Git经典题目,Git入门)

1. GitHub是什么 a. Git是一个分布式版本控制系统,作用是跟踪、管理和协调软件开发项目中的代码更改。 b. 提供了一种有效的方式来管理代码的版本历史,以及多人协作开发的能力。 2. Git的作用有哪些 a. 版本控制:Git可以记录每次代码更改的…

基于51单片机轮胎胎压监测系统—数码管显示

基于51单片机轮胎胎压监测系统 (仿真+程序+设计报告) 功能介绍 具体功能: 1.MPX4115压力传感器胎压检测; 2.ADC0832进行模数转换后,51单片机处理控制; 3.数码管显示胎压&#xff…

想要品牌传播有效,先清楚这三个本质问题

在互联网时代,企业想要提高市场竞争力就需要做好品牌传播。然而有许多企业在做品牌传播时都会踩坑,原因是因为忽视了这三点,接下来就让媒介盒子和大家分享: 一、 文案本质是“购买理由” 在文案技巧中经常会出现一些词&#xff…

1. TypeScript: JavaScript 的超集,为大型应用而生

引言 在现代的前端开发领域,JavaScript 无疑是一门极其流行的语言。然而,随着前端项目的日益复杂,JavaScript 本身的一些特性使得维护和扩展大型代码库变得困难。这就是 TypeScript 应运而生的背景。TypeScript 是一种由微软开发的开源语言&…

java中如何使用Rabbitmq?

1、添加相关的依赖 在Java中使用RabbitMQ,你需要先确保RabbitMQ服务器已经安装并运行在你的机器上或者某个服务器上。然后,你需要在Java项目中添加RabbitMQ的Java客户端库作为依赖。对于Maven项目,你可以在pom.xml文件中添加以下依赖&#x…

SSL的起源和发展史

随着网络技术的发展,当前各大浏览器厂商都对尚未使用SSL证书,切换到HTTPS的网站做了风险预警。SSL证书的如此重要,你了解SSL证书的诞生和发展史吗?跟随本文一起来了解SSL的前世今生。 SSL协议的诞生 Netscape(网景通…

uniapp 表单使用Uview校验 包括城市选择器

<view><!-- 注意&#xff0c;如果需要兼容微信小程序&#xff0c;最好通过setRules方法设置rules规则 --><u--form labelPosition"left" :model"model1" :rules"rules" ref"uForm" labelWidth"174"><u…

Python中csr_matrix的两种初始化方法

本文以csr_matrix为例来说明sparse矩阵的使用方法&#xff0c;其他类型的sparse矩阵可以参考https://docs.scipy.org/doc/scipy/reference/sparse.html csr_matrix是Compressed Sparse Row matrix的缩写组合&#xff0c;下面介绍其两种初始化方法 csr_matrix((data, (row_ind…

concat() 函数

concat(某一具体的值或数组对象) 作用&#xff1a;将括号里的内容连接在一起注意&#xff1a; &#xff08;1&#xff09;多个具体的值或数组对象用逗号隔开 &#xff08;2&#xff09;select 语句返回的结果也是个数组&#xff0c;所以 select 语句可以写在 concat 函数的括号…

【操作系统】-寄存器-具有记忆功能的元器件

为什么要使用寄存器 现代电子计算机用二进制来表示数字&#xff0c;人类发明了触发器&#xff0c;每个触发器可以保存1比特&#xff0c;为了保存一个较大的二进制数&#xff0c;组合一起就是新的元器件&#xff0c;称为寄存器&#xff08;register&#xff09;&#xff0c;或者…

Python读取文件里内容

如果要读取一个文件里的内容是 # 文件名&#xff1a;db.txt 1 2 3 4代码如下 import requests f open("db.txt", mode"rb") content f.read() f.close()data content.decode(utf-8)# 存到 list 里 data_list data.split(\r\n) print(data_list)# 结果…

Docker-部署、镜像容器管理、commit

安装部署 一、查询版本信息 命令说明docker version查看服务器与客户端版本docker info查看docker服务配置信息 二、安装部署 官网地址&#xff1a;Install Docker Engine | Docker Docs 1、卸载旧的版本 sudo yum remove docker \docker-client \docker-client-latest \…

MySQL-7.mysql约束

约束用于确保数据库中的数据满足特定的商业规则。 MySQL约束包含五种&#xff1a;not null、unique、primary key、foreign key、check 7.1 primary key 主键 字段名 字段类型 primary key 用于唯一的标识表的行数据&#xff0c;当定义主键约束后&#xff0c;该列不能重复。 pr…

力扣经典150题第九题:跳跃游戏

目录 1. 简介2. 问题描述3. 解题思路方法一&#xff1a;贪心算法 4. 算法实现方法一&#xff1a;贪心算法 5. 示例与测试6. 总结与展望7. 结语 1. 简介 本篇博客将讨论力扣经典150题中的跳跃游戏问题。给定一个非负整数数组 nums&#xff0c;数组中的每个元素代表在该位置可以…

perl 交叉编译

前言 Perl是一种高级、通用、解释型、动态的编程语言。Perl设计的初衷是为了更好地处理文本处理任务&#xff0c;但随着时间的发展&#xff0c;现在它已经变成了一种强大的一般目的编程语言。Perl支持面向过程和面向对象的编程风格。 Perl的特点&#xff1a; 强大的字符串处…

ROC与决策树介绍

ROC与决策树介绍 一、ROC介绍 ROC&#xff08;Receiver Operating Characteristic&#xff09;曲线&#xff0c;即受试者工作特征曲线&#xff0c;是一种用于评估二元分类器性能的工具。ROC曲线起源于信号检测理论&#xff0c;后来被广泛用于机器学习和统计学习中的分类问题。…

第十课 Excel

最上方标题栏&#xff1a; 显示共工作薄名称&#xff0c;如果显示兼容模式是没有办法使用高级功能的。分辨高版本和低版本可以通过后缀名进行分辨&#xff1b;显示xlsx就是高版本工作薄&#xff0c;如果显示xls的话就是低版本工作薄了。如果同事老板都使用的是低版本的话我们发…

VM-UNet: Vision Mamba UNet for Medical Image Segmentation

VM-UNet: Vision Mamba UNet for Medical Image Segmentation VM-UNet&#xff1a;基于视觉Mamba UNet架构的医学图像分割 论文链接&#xff1a;http://arxiv.org/abs/2402.02491 代码链接&#xff1a;https://github.com/JCruan519/VM-UNet 1、摘要 文中利用状态空间模型SS…

【攻防世界】Confusion1

php的标志是大象&#xff0c;Python的标志是蛇 。Python 的 Flask 框架( Flask 使用 Jinja2 作为模板引擎 ) 点进register.php 输入{{3*4}} 输入 {{config}} 也有回显&#xff0c;ssti 判断是否存在ssti注入&#xff1a; 1. {{8*8}} 2. {{config}} 过滤了关键字&#xff0…

人工智能前沿成科技竞争新高地

以下文章来源&#xff1a;经济参考报 近日&#xff0c;首届中国具身智能大会&#xff08;CEAI 2024&#xff09;在上海举行。作为人工智能领域的前沿热点&#xff0c;具身智能正逐步走进现实&#xff0c;成为当前全球科技竞争的新高地、未来产业的新赛道、经济发展的新引擎。 “…