node 第十三天 express初见

news2024/11/19 10:20:43
  1. express概念

Fast, unopinionated, minimalist web framework for Node.js
快速、独立、极简的 Node.js Web 框架。

  1. express相当于前端的jquery, 在不更改不侵入原生node的基础上封装了大量易用且实用的服务端api, express框架的封装原理就是前面第十天我们自己封装的简易服务器, 不过express做的抽象要比我们自己封装服务器多得多
  2. 使用 Express 应用生成器 这个可以比作做前端的项目初始化脚手架比如vue-cli vite
1.
npm install -g express-generator 
安装生成器
2.
express --view=pug myapp 
生成应用, 一些404页面, 静态资源目录帮我们做好了, 使用 handlebars 作为模板引擎, 关于handlebars其实是一个非常简单的模板引擎
感兴趣可以去查阅相关资料
  1. 基础api介绍
//路径匹配
//1.匹配 /abcd
app.use('/abcd', (req, res, next) => {
  console.log('/abcd');
  next();
});
//2.匹配 /abcd /abd
app.use('/abc?d', (req, res, next) => {
  console.log('/abc?d');
  next();
});
//3.匹配 /abcd /abbcd /abbbbbbcd
app.use('/ab+cd', (req, res, next) => {
  console.log('/ab+cd');
  next();
});
//4.匹配 /abcd /abxcd /abxxxxxcd
app.use('/ab*cd', (req, res, next) => {
  console.log('/ab*cd');
  next();
});
//5.匹配 /abcd /ad
app.use('/a(bc)?d', (req, res, next) => {
  console.log('/a(bc)?d');
  next();
});
//6.正则匹配 /abc开头的路径 或 /xyz开头的路径
app.use(/\/abc|\/xyz/, (req, res, next) => {
  console.log('正则匹配');
  next();
});
//7.数组匹配 /abc /xyz 开头的路径
app.use(['/abc', '/xyz'], (req, res, next) => {
  console.log('数组匹配');
  next();
});
app.use(/.*/, (req, res, next) => {
  res.json({ over: true });
});

//一些输出
app.use('/login/:path/:name', (req, res, next) => {
  console.log(req.baseUrl, 'baseUrl');
  console.log(req.body, 'body');
  console.log(req.cookies, 'cookie');
  console.log(req.fresh, '客户端是否有缓存');
  console.log(req.hostname, 'client hostname');
  console.log(req.ip, 'client ip');
  console.log(req.method, 'method');
  console.log(req.path, 'path');
  console.log(req.params, 'params');
  console.log(req.get('Content-Type'), 'header["content-type"]');
  console.log(req.is('json') === 'json', 'req.header["content-type"] is json');
  console.log('over ! ! !');
  res.json({ msg: 'please login' });
  next();
});
  1. 工欲善其事,必先利其器, 在调试服务器接口的时候可以使用postman等工具, 比在浏览器调试方便
    虽然通篇说的后端都是web服务器, 但其实, 在http协议或者其它协议的前提下, 后端的接口不只是能够服务web, 还能服务app 嵌入式等
    postman相比apipost更适合开发人员做一点简单的测试, 更轻量好用
    界面如下, 开箱即用, 需要汉化可以去github上拿 连接
    postman

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

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

相关文章

BI是什么?想要了解BI需要从哪些方面入手?

企业为了执行数字化战略,实行数字化转型,实现数据价值,除了需要相关数字化技术及理念、人才等,还需要借助数字化相关应用,例如商业世界中广受企业欢迎的ERP、OA、CRM等业务信息系统,以及上升势头非常迅猛的…

设计模式(2)-创建型模式

1,创建型模式 4.1 单例设计模式 单例模式(Singleton Pattern)是 Java 中最简单的设计模式之一。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。 这种模式涉及到一个单一的类,该类负责创建自己…

c语言中各类指针的总结

1、数组指针 在c语言中,指针常被用于应用数组,或者作为数组的元素。顾名思义,指向数组的指针常被简称为数组指针。值得注意的是,数组指针指向的数组是数组名,也是其数值中首元素的地址。 我们定义数组指针的方式如下…

26 行为型模式-命令模式

1 命令模式介绍 2 命令模式原理 3 命令模式实现 模拟酒店后厨的出餐流程,来对命令模式进行一个演示,命令模式角色的角色与案例中角色的对应关系如下: 服务员: 即调用者角色,由她来发起命令. 厨师: 接收者,真正执行命令的对象. 订单: 命令中包含订单 /*** 订单类**/ public cl…

深入浅出排序算法之堆排序

目录 1. 算法介绍 2. 执行流程⭐⭐⭐⭐⭐✔ 3. 代码实现 4. 性能分析 1. 算法介绍 堆是一种数据结构,可以把堆看成一棵完全二叉树,这棵完全二叉树满足:任何一个非叶结点的值都不大于(或不小于)其左右孩子结点的值。若父亲大孩子小&#x…

Azure - 机器学习实战:快速训练、部署模型

本文将指导你探索 Azure 机器学习服务的主要功能。在这里,你将学习如何创建、注册并发布模型。此教程旨在让你深入了解 Azure 机器学习的基础知识和常用操作。 关注TechLead,分享AI全维度知识。作者拥有10年互联网服务架构、AI产品研发经验、团队管理经验…

按照正规的软件开发流程,项目原型评审是全程对着页面评审吗

项目原型评审是软件开发过程中的一步,它的目的是确保设计和需求的一致性,以及提供一个可视化的界面供所有相关方进行沟通和理解。评审过程中,可能会涉及到多个方面: 用户界面(UI):确保UI设计满足…

2023第51届(郑州)全国文房四宝艺术博览会将于11月10日在郑州启幕

由中国文房四宝协会、《中国文房四宝》杂志社主办的2023第51届全国房四宝艺术博览会暨首届中国书房艺术空间展即将于11月10-13日在郑州国际会展中心盛大启幕。 这是首次文房四宝企业精英携千款优质产品,进入中原文化胜地集体亮相。这是一次书香郑州与中国文房的相遇…

北太天元安装教程 及使用方法

北太天元是面向科学计算与工程计算的国产通用型科学计算软件。提供科学计算、可视化、交互式程序设计,具备丰富的底层数学函数库,支持数值计算、数据分析、数据可视化、数据优化、算法开发等工作,并通过SDK与API接口,扩展支持各类…

手机apn介绍

公司遇到一件很棘手的事情,app发版之后,长江以北地方的用户网络信号很好,但是打开app之后网络连接不上,而长江以南的用户网络却很好。大家找了很多资料,提出一些方案: 1、是不是运营商把我们公司的ip给限制…

BDS/GNSS 卫星定位 SOC 芯片AT6558R 适用车载定位与导航

芯片简介 AT6558R 是一款高性能 BDS/GNSS 多模卫星导航接收机 SOC 单芯片,片上集成射频前端,数字基带处理器,32 位的 RISC CPU,电 源管理功能。 芯片支持多种卫星导航系统,包括中国的北斗卫星导航系统 BDS&#xff0c…

1985-2023年6月全球各国经济政策不确定性数据

1985-2023年6月全球各国经济政策不确定性数据 1、时间:1985年1月-2023年6月(月度) (2、来源:Economic Policy Uncertainty 3、范围:20多个国家的月度EPU数据(澳大利亚、巴西、加拿大、智利、…

正点原子嵌入式linux驱动开发——Linux SPI驱动

到目前为止的学习笔记,已经介绍了Linux下的platform总线框架、I2C总线框架,本篇笔记将介绍Linux下的SPI总线框架。与I2C总线一样,SPI是物理总线,也是一种很常用的串行通信协议。本章就来学习如何在Linux下编写SPI总线接口的设备驱…

电脑如何下载视频号的视频?电脑微信视频号使用的方法!

近年来,随着智能手机的普及和互联网技术的快速发展,社交媒体成为人们生活中不可或缺的一部分。微信作为中国最大的社交媒体平台之一,拥有庞大的用户群体和丰富多样的功能。然而,随着移动设备使用时间的增加,越来越多的…

P7473 重力球

P7473 重力球 Solution 考虑 Brute Force:对于每一次询问,通过 BFS 处理出最近的交汇点,输出答案。 很显然,会 TLE \colorbox{navy}{\color{white}{TLE}} TLE​。 故,考虑 优化: 观察发现障碍物数量非…

win10 + VS2017 编译libjpeg(jpeg-9b)--更新

刚刚写了一篇“win10 VS2017 编译libjpeg(jpeg-9b)”, 然后就发现,还有一个更好的方法。因此,重新更新了一篇,作为对比与参考。 需要用到的文件: jpeg-9b.zip win32.mak 下载链接链接…

【Linux】Linux+Nginx部署项目

🥳🥳Welcome Huihuis Code World ! !🥳🥳 接下来看看由辉辉所写的关于Linux的相关操作吧 目录 🥳🥳Welcome Huihuis Code World ! !🥳🥳 一.单体项目的部署 0.我们需要将要进行部…

『第八章』进击的雨燕:Combine 框架

在本篇博文中,您将学到如下内容: 1. Combine 为何物?1.1 观察者与响应式编程2. Combine 构成要素3. Combine 简单示例3.1 Just 发布者3.2 操作符的链式调用3.3 抛出错误的发布者3.4 消息流的保持和取消3.5 Combine 调试4. 更多 Combine 示例总结组织文章七尺身,庚庚烟缕碧菅新…

石油化工行业能源管理平台,让能源管理更简单,更高效

石油化工行业是高能耗、高污染的行业,能源消耗量巨大,且能源消耗量较低。为了提高能源利用效率,降低能源成本,石化企业需要加强对能源的管理和监控。因此石化企业需要建立一个高效的能源管理平台,来实现能源的集中管理…

Linux学习第24天:Linux 阻塞和非阻塞 IO 实验(一): 挂起

Linux版本号4.1.15 芯片I.MX6ULL 大叔学Linux 品人间百味 思文短情长 在正式开始今天的笔记之前谈一下工作中遇见的一个问题。 本篇笔记主要学习Linux 阻塞和非阻塞 IO 实验,主要包括阻塞和非阻塞简介、等待队列、轮询、…