简单用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)来管理代码,并定期提交和推送代码更改。这样可以确保团队成员之间的协作,并使代码更易于追踪和恢复。

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

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

如何快速摸清一个行业?

作为一名职场人,或多或少都会遇到需要了解自己不熟悉的行业,比如: 职业选择,跳槽换工作时:哪家企业所在的行业有优势,未来会有更多的机会?哪个行业给的薪资会更高?行业内当下及未来的…

linux/centos/ubuntu无法开机数据恢复完美解决

生产紧急问题可私信博主解决 背景: 朋友跟我说他的centos7服务器开不开机了,给了我一张图片 他告诉运维通过xfs_repair修复无效,依旧启动不了 原因分析 从以上图片可知系统进入了dracut模式,很明显的报错/dev/mapper/centos-r…

FebHost:墨西哥.MX域名争议解决机制重要性

在全球化的浪潮中,有效的域名争议解决机制对于保护商标持有者的权益、防止域名系统的滥用至关重要。墨西哥,与其他国家一样,建立了一套完善的争议解决框架,确保商标所有者在维护其知识产权完整性时能够得到公平对待。这不仅增强了…

怎样恢复已删除的照片?教你3个方法,一键恢复!

很多人喜欢以拍照的形式记录生活,手机里的照片就很容易堆积成山,但当内存不够用时就不得不选择删除。可是这些美好的照片始终是很多人心中抹不去的记忆,那么该怎样恢复已删除的照片呢?下面几招,教你一键恢复&#xff0…

3.网络编程-TCP

目录 TCP 建立连接的过程是怎样的 TCP为什么是三次握手 TCP 断开连接的过程是怎样的 TCP挥手为什么需要四次 为什么TIME_WAIT等待的时间是2MSL TCP详解之滑动窗口 TCP 半连接队列和全连接队列是什么 TCP粘包,拆包是怎么发生的,如何解决 TCP是如何…

LeetCode-热题100:K 个一组翻转链表

题目描述 给你链表的头节点 head ,每 k 个节点一组进行翻转,请你返回修改后的链表。 k 是一个正整数,它的值小于或等于链表的长度。如果节点总数不是 k 的整数倍,那么请将最后剩余的节点保持原有顺序。 你不能只是单纯的改变节…

小白能看懂的CyberRT学习笔记

0. 简介 Apollo Cyber RT 是专为自动驾驶场景设计的开源、高性能运行时框架。 基于中心化计算模型,主要价值是提升自动驾驶系统的高并发、低延迟、高吞吐。 Apollo 并不是一开始就使用 CyberRT,在 v3.0 之前用的都是基于 ROS 框架进行开发。但在之前的…

SQL Server详细安装使用教程

1.安装环境 现阶段基本不用SQL Server数据库了,看到有这样的分析话题,就把多年前的存货发一下,大家也可以讨论看看,思路上希望还有价值。 SQL Server 2008 R2有32位版本和64位版本,32位版本可以安装在Windows XP及以上…

ES11 学习

文章目录 1. Promise.allSettled2. Module 新增2.1 ! 动态导入 import()2.2 import.meta2.3 export * as obj from module 3. 字符串 matchAll()4. BigInt实际开发相关使用 5. globalThis6. 空值合并运算符7. 可选链操作符 1. Promise.allSettled Promise.allSettled() 返回一个…

【算法详解】双指针

双指针 常见的双指针有两种形式,一种是对撞指针,一种是左右指针。 1. 双指针简介 双指针(Two Pointers):指的是在遍历元素的过程中,不是使用单个指针进行访问,而是使用两个指针进行访问&#…

【uniapp】个推H5号码认证一键登录(附代码)

前言 最近在做APP、h5产品,登陆注册成了难题。邮箱验证多数人不会使用,还是短信方便点,短信可以采用号码认证和验证码的方式,前者稍微便宜的,关于性价比和上手程度我推荐个推, 于是有了今天这篇案例记录&a…

谷歌浏览器插件开发速成指南:弹窗

诸神缄默不语-个人CSDN博文目录 本文介绍谷歌浏览器插件开发的入门教程,阅读完本文后应该就能开发一个简单的“hello world”插件,效果是出现写有“Hello Extensions”的弹窗。 作为系列文章的第一篇,本文还希望读者阅读后能够简要了解在此基…

爬取日本常用汉字秘籍

前言 昨天投简历时遇到了这样的一个笔试。本以为会是数据结构算法之类的没想到直接发了一个word直接提需求,感觉挺有意思就写了这篇文章,感兴趣的朋友可以看看。 1. 网页内容解析 首先,我们通过请求网页获取到日本常用汉字的链接列表。然后…

计算机网络——38报文完整性

报文完整性 数字签名 数字签名类比于手写签名 发送方数字签署了文件,前提是他是文件的拥有者/创建者可验证性,不可伪造性,不可抵赖性 谁签署,接收方可以向他人证明是他,而不是其他人签署了这个文件签署了什么&#…

Web攻击越发复杂,企业如何保护云上业务

如今,电子政务、电子商务、网上银行、网上营业厅等依托Web应用,为广大用户提供灵活多样的服务。在这之中,流量攻击堪称是Web应用的最大敌人,黑客通过流量攻击获取利益、竞争对手雇佣黑客发起恶意攻击、不法分子通过流量攻击瘫痪目…

ShardingSphere-JDBC使用时出现雪花算法id无法生成

出现报错: 这是sql 尝试1: 这里改成Long 还是报错 尝试2:将配置重写 删除 props: # 主键生成器属性配置worker-id: 1 # Snowflake算法中的workerId配置解决!

基于Difussion图像、视频生成综述

2024年大年初七(02.16)OpenAI 发布视频生成模型 Sora 在各大平台转疯了,和2022年发布ChatGPT3.5时一样的疯狂。在开工第一天,我就去官网上看了 Sora 的技术报告,遗憾的是,在这份技术报告中只披露了一些模型…

苹果证书分类及作用详解,助力开发者高效管理应用程序

转载:苹果证书的作用及分类详解 摘要:本文将详细介绍苹果证书的作用及分类,包括企业证书、开发者证书、 推送证书、分发证书和MDM证书,帮助开发者了解如何正确使用和管理这些证书, 提升应用程序的开发和发布效率。 引…

基于SSM的校园二手物品交易平台论文

摘 要 现代经济快节奏发展以及不断完善升级的信息化技术,让传统数据信息的管理升级为软件存储,归纳,集中处理数据信息的管理方式。本校园二手物品交易平台就是在这样的大环境下诞生,其可以帮助管理者在短时间内处理完毕庞大的数据…

基于单片机分舱式电开水炉位控制系统

**单片机设计介绍,基于单片机分舱式电开水炉位控制系统 文章目录 一 概要二、功能设计三、 软件设计原理图 五、 程序六、 文章目录 一 概要 基于单片机分舱式电开水炉位控制系统概要主要涉及通过单片机对电开水炉的各个舱位进行精确控制,实现水位、温度…