【Node.js】认识express并创建基本web服务器:

news2024/11/20 2:44:11

文章目录

        • 一、初识 Express
            • 【1】Express 简介
            • 【2】Express 的基本使用
            • 【3】托管静态资源
            • 【4】nodemon
        • 二、Express 路由
            • 【1】路由的概念
            • 【2】路由的使用
        • 三、Express 中间件
            • 【1】中间件的概念
            • 【2】Express 中间件的初体验
            • 【3】中间件的分类
            • 【4】自定义中间件
        • 四、使用 Express 写接口
            • 【1】创建基本的服务器
            • 【2】创建 API 路由模块
            • 【3】编写 GET 接口
            • 【4】编写 POST 接口
            • 【5】CORS 跨域资源共享
            • 【6】JSONP 接口


一、初识 Express

【1】Express 简介

【1-1】什么是 Express
Express 的中文官网: http://www.expressjs.com.cn/
在这里插入图片描述

【1-2】进一步理解 Express
在这里插入图片描述

【1-3】Express 能做什么
在这里插入图片描述

【2】Express 的基本使用

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

【3】托管静态资源

【3-1】express.static()
在这里插入图片描述

【3-2】托管多个静态资源目录
在这里插入图片描述

【3-3】挂载路径前缀
在这里插入图片描述

【案例】在这里插入图片描述
默认显示没有前缀的静态资源目录,如果多个都是没有前缀的静态资源目录,则加载最前面那个
(前面那个的目录没有,则加载后面那个目录)在这里插入图片描述在这里插入图片描述

【4】nodemon

【4-1】为什么要使用 nodemon(https://www.npmjs.com/package/nodemon)
但是vs code开启了自动保存的话,nodemon会不停的重启项目,此时会发生报错,解决:ctrl+c=》启动项目(或关闭自动保存)
在这里插入图片描述

【4-2】安装 nodemon与使用
在这里插入图片描述
在这里插入图片描述

二、Express 路由

【1】路由的概念

在这里插入图片描述
在这里插入图片描述

【2】路由的使用

【2-1】最简单的用法
在这里插入图片描述

【2-2】模块化路由
在这里插入图片描述
【案例】
(1)创建路由模块
在这里插入图片描述
(2)注册路由模块
在这里插入图片描述

三、Express 中间件

【1】中间件的概念

【1-1】什么是中间件
在这里插入图片描述

【1-2】Express 中间件的调用流程
在这里插入图片描述

【1-3】Express 中间件的格式
在这里插入图片描述

【1-4】next 函数的作用
在这里插入图片描述

【2】Express 中间件的初体验

【2-1】定义中间件函数
在这里插入图片描述

【2-2】全局生效的中间件
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

【2-3】中间件的作用
在这里插入图片描述

【2-4】局部生效的中间件
在这里插入图片描述
在这里插入图片描述

【2-5】了解中间件的5个使用注意事项
在这里插入图片描述

【3】中间件的分类

在这里插入图片描述

【3-1】应用级别的中间件
在这里插入图片描述

【3-2】路由级别的中间件
在这里插入图片描述

【3-3】错误级别的中间件
在这里插入图片描述

【3-4】Express内置的中间件
在这里插入图片描述

【3-5】路由级别的中间件
在这里插入图片描述

【4】自定义中间件

【4-1】需求描述与实现步骤在这里插入图片描述在这里插入图片描述
【4-2】将自定义中间件封装为模块
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

四、使用 Express 写接口

【1】创建基本的服务器

在这里插入图片描述

【2】创建 API 路由模块

在这里插入图片描述

【3】编写 GET 接口

在这里插入图片描述

【4】编写 POST 接口

在这里插入图片描述

【5】CORS 跨域资源共享

在这里插入图片描述

在这里插入图片描述

【5-1】使用 cors 中间件解决跨域问题
在这里插入图片描述

【5-2】什么是 CORS
在这里插入图片描述
在这里插入图片描述

【5-3】CORS 响应头部 - Access-Control-Allow-Origin
在这里插入图片描述
在这里插入图片描述

【5-4】CORS 响应头部 - Access-Control-Allow-Headers
在这里插入图片描述

【5-5】CORS 响应头部 - Access-Control-Allow-Methods
在这里插入图片描述

【5-6】CORS请求的分类
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

【6】JSONP 接口

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

【案例】
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

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

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

相关文章

钉钉群机器人撤回信息-实操详细教程

仅支持企业应用 1.在开发平台创建机器人,勾选机器人配置 发布 最终要在这里能找到才算成功 注:发布后要在钉钉内部群添加机器人选择新建的 第一步:获取accessToken(程序权限) 找到Appkey和AppSecret import requests…

JWT 安全及案例实战

文章目录 一、JWT (json web token)安全1. Cookie(放在浏览器)2. Session(放在服务器)3. Token4. JWT (json web token)4.1 头部4.1.1 alg4.1.2 typ 4.2 payload4.3 签名4.4 通信流程 5. 防御措施 二、漏洞实例(webgoa…

教你自己制作一个ALU

计算机在没有齿轮的时候是如何负责运算的呢? ALU就是计算机里负责运算的组件,这篇文章就是教你自己做一个ALU 第一个ALU 1970年,第一个封装在单个芯片内的完整ALU——英特尔74181诞生,这在当时是惊人的工程壮举! 算…

微信小程序的疫苗接种预约设计与实现vue+uniapp

对于本小程序的疫苗预约的设计来说,系统开发主要是采用java语言,在整个系统的设计中应用MySql数据库来完成数据存储,具体根据疫苗预约信息的现状来进行开发的,具体根据现实的需求来实现疫苗预约网络化的管理,各类信息有…

华为云云耀云服务器L实例评测|StackEdit中文版在线Markdown笔记工具

华为云云耀云服务器L实例评测|StackEdit中文版在线Markdown笔记工具 一、云耀云服务器L实例介绍1.1 云服务器介绍1.2 应用场景1.3 支持镜像 二、云耀云服务器L实例配置2.1 重置密码2.2 服务器连接2.3 安全组配置 三、部署 StackEdit 中文版3.1 StackEdit 介绍3.2 环…

C语言基础语法复习06-c语言关键字

ANSI标准定义的C语言关键字共32个: void char int float double short long signed unsigned struct union enum typedef sizeof auto static register extern const volatile return continue break goto if else switch case default for do while C99新增关键字:…

1222.可以攻击国王的皇后

在一个 8x8 的棋盘上,放置着若干「黑皇后」和一个「白国王」。 给定一个由整数坐标组成的数组 queens ,表示黑皇后的位置;以及一对坐标 king ,表示白国王的位置,返回所有可以攻击国王的皇后的坐标(任意顺序)。 示例 1…

Spring续集

6.2、转发视图 SpringMVC中默认的转发视图是InternalResourceView SpringMVC中创建转发视图的情况: 当控制器方法中所设置的视图名称以"forward:"为前缀时,创建InternalResourceView视图,此时的视图名称不会被SpringMVC配置文件中所…

前后端开发接口联调对接参数

前言 一个完整的互联网系统项目,需要前后端配合,进行上线,针对前端开发者,现在互联网主流的项目都是前后端分离 也就是后端负责提供数据接口,前端负责UI界面数据渲染 凡是在前台数据展示与用户交互的,都是由前端来实现的,而数据来源是由后台服务提供的 在浏览器c端能够发送后端…

STM32 ~ GPIO不同模式之间的区别与实现原理

GPIO全称General Purpose Input Output ,即通用输入/输出。其实GPIO的本质就是芯片的一个引脚,通常在ARM中所有的I/O都是通用的。不过,由于每个开发板上都会设计不同的外围电路,这就造成了GPIO的功能可能有所不同。大部分GPIO都是…

百度测开初面面试题分享(答案+文档)

1、java常用的异常处理机制 Java常用的异常处理机制有以下几种: 1)try-catch-finally语句:用于捕获和处理异常。将可能抛出异常的代码放在try块中,然后在catch块中处理异常。无论是否发生异常,finally块中的代码都会…

算法总结10 线段树

算法总结10 线段树 线段树2569. 更新数组后处理求和查询 线段树 有一个数组,我们要: 更新数组的值(例如:都加上一个数,把子数组内的元素取反)查询一个子数组的值(例如:求和&#x…

【进阶篇】MySQL数据库中的 锁详解

文章目录 1. 介绍2. MySQL 锁类型3. 锁的粒度4. 锁的使用场景和示例5. 锁的性能优化和注意事项6. MySQL 的锁机制和实现细节1. 锁的存储和管理2. 锁的竞争和调度3. 锁的实现原理 7. 锁的调优和故障处理1. 锁等待和超时:2. 死锁处理和恢复:3. 锁的监控和分…

AtCoder Beginner Contest 313 C 一个序列同时加一个数和减一个数,直到最大和最小之间相差最大为1(结论可记住)

AtCoder Beginner Contest 313 C 做题链接:AtCoder Beginner Contest 313 问题陈述 给你一个整数序列 A(A1​,A2​,…,AN​)。你可以执行以下操作任意次数(可能为零)。 选择带有 1≤i,j≤N的整数 i和 j。将Ai​减少 1,将Aj​增…

珂学送分

从后往前倒着走。 先找出每个点能走到的最远的右端点是什么,记录为r[i],每个点i可能分为的情况有(r[i] - i 1)种,每一种的概率是1 / (r[i] - i 1),(每一种的概率乘以它后面那个格子的期望)之和再加自己的…

Python用若干列的数据多条件筛选、去除Excel数据并批量绘制直方图

本文介绍基于Python,读取Excel数据,以一列数据的值为标准,对这一列数据处于指定范围的所有行,再用其他几列数据数值,加以筛选与剔除;同时,对筛选与剔除前、后的数据分别绘制若干直方图&#xff…

Peppercontent.io:人工智能驱动的内容生成工具

【产品介绍】​ 名称 Peppercontent.io 成立时间​ 成立于2017年 具体描述 Peppertype.ai 是一种基于GPT-3的AI辅助工具,而GPT-3则是一种深度学习自回归语言模型。这一技术潜藏着巨大的潜力,可以立刻为企业和创作者提供创意内容&…

JavaScript的DOM操作(二)

一、元素的特性attribute 1.元素的属性和特性 前面我们已经学习了如何获取节点,以及节点通常所包含的属性,接下来我们来仔细研究元素Element。 我们知道,一个元素除了有开始标签、结束标签、内容之外,还有很多的属性&#xff0…

influxdb2.7基本介绍安装与启动

概念 timestamp: influxdb所有的数据都会有一个列_time来存timestamp。默认是以nanosecond格式存储的。field: field就是mysql中的字段,field key存储在_field字段中,field value就是字段值,存储在_value字段中。field key和field value对组…

【Java 基础篇】Java可变参数:灵活处理不定数量的方法参数

在Java编程中,可变参数是一项强大的功能,它允许你编写更加灵活的方法,接受不定数量的参数。本文将详细解释Java可变参数的用法、语法以及最佳实践。 什么是可变参数? 可变参数是Java 5引入的一项功能,它允许你在方法…