node插件express(路由)的基本使用(一)

文章目录

  • 一、express的了解
    • 1.定义
    • 2.作用
    • 3.使用express的前提条件
      • (1)如果是新文件夹需要薪资package.json文件,如果有就忽略
      • (2)安装第三方依赖包
      • (3)在使用的地方导入express
  • 二、express的基本使用
  • 三、express关于路由的基本使用
    • 1.什么是路由
    • 2.路由的使用
    • 3.路由使用示例
    • 4、express中的get参数
      • (1)query参数
      • (2)params参数
      • (3)示例代码
    • 5、express中的post参数
  • 五、express托管静态资源
    • 1.了解
    • 2.基本使用
      • 3:注意点


一、express的了解

express官方中文文档:https://www.expressjs.com.cn/starter/basic-routing.html

1.定义

官网说明:Express 是一个保持最小规模的灵活的 Node.js Web 应用程序开发框架,为 Web 和移动应用程序提供一组强大的功能。
简单理解:一个npm上的第三方包,提供了快捷创建Web服务器的便捷方法。

2.作用

相比于http内置模块创建web服务器而言,Express能极大的提高开发效率。

3.使用express的前提条件

(1)如果是新文件夹需要薪资package.json文件,如果有就忽略

npm init  // 生成package.json文件

(2)安装第三方依赖包

npm i express // 安装第三方依赖包

(3)在使用的地方导入express

const express = require('express')

二、express的基本使用

// 1:导入包
const express = require('express')// 创建服务器的对象
const app = express();// 3:创建请求路径
app.get('/home', (req, res) => {res.end('Hello word')
})// 4:启动服务
app.listen(9000, () => {console.log('express服务器创建成功');
})

在这里插入图片描述

三、express关于路由的基本使用

1.什么是路由

路由确定了应用程序如何响应客户端对特定端点的请求

2.路由的使用

method 是方法(get、post、all)
path 是请求的路径
callback 回调函数

app.method(path, callback)

3.路由使用示例

需要注意的发送 post 方法表单和ajax,这样才会有效果。

// 1:导入包
const express = require('express')// 创建服务器的对象
const app = express();// 3:创建请求路径
// 3.1 get路由——匹配空路径
app.get('/', (req, res) => {res.end('home')
})// 3.2 get路由——匹配home路径
app.get('/home', (req, res) => {res.end('Hello word')
})
// 3.3 post路由——匹配login
app.post('/login', (req, res) => {res.end('login')
})
// 3.4 匹配所有方法(get、post)
app.all('/test', (req, res) => {res.end('test')
})
// 3.5 匹配所有方法(get、post)
app.all('*', (req, res) => {res.end('404 found')
})// 4:启动服务
app.listen(9000, () => {console.log('express服务器创建成功');
})

在这里插入图片描述

4、express中的get参数

(1)query参数

在这里插入图片描述

(2)params参数

参数中的 ? 代表 可传可不传
在这里插入图片描述

(3)示例代码

const express = require('express')const app = express();// 参数1:静态参数
app.get('/home', (req, res) => {// 请求路径:http://127.0.0.1:9000/home?name=zhangsan&pass=123456console.log('get参数1',req.query); // get参数1 { name: 'zhangsan', pass: '123456' }res.end('home')
})// 参数2:动态参数(单个)
app.get('/home/:name', (req, res) => {// 请求路径: http://127.0.0.1:9000/home/zhangsan/console.log('get参数2',req.params); //get参数2 { name: 'zhangsan' }res.end('home')
})
// 参数3:动态参数(多个)
// ?表示可以忽略该参数
app.get('/home/:name?/:pass', (req, res) => {// 请求路径: http://127.0.0.1:9000/home/zhangsan/123456console.log('get参数3',req.params); // get参数3 { name: 'zhangsan', pass: '123456' }res.end('home')
})app.listen(9000, () => {console.log('get启动')
})

5、express中的post参数

// node 中使用post参数的逻辑
const express = require('express')const app = express();
// post 请求参数
app.post('/login/:name?/:pass' ,(req, res) => {console.log('post参数',req.params); // post参数 { name: 'zhagnsan', pass: '123456' }res.end('home')
})app.listen(9000, () => {console.log('post参数启动')
})

在这里插入图片描述

五、express托管静态资源

1.了解

express.static(root, [options])
app.use(express.static(‘文件路径’))

在这里插入图片描述

2.基本使用

const express = require('express')const app = express();// 以前:获取url路径、拼接url路径,读取文件,写入文件......(现在一行即可)
app.use(express.static(__dirname + '/public'))app.get('/home', (req, res) => {res.end('首页')
})app.listen(9000, () => {console.log('服务器启动');
})

在这里插入图片描述

3:注意点

如果要使用多个静态资源目录,请多次调用 express.static 中间件函数

app.use(express.static('public'))
app.use(express.static('files'))

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

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

相关文章

Jetpack:028-Jetpack中的Card

文章目录 1. 概念介绍2. 使用方法2.1 主要类型2.2 其它类型 3. 示例代码4. 内容总结 我们在上一章回中介绍了Jetpack中Switch相关的内容,本章回中 主要介绍Card。闲话休提,让我们一起Talk Android Jetpack吧! 1. 概念介绍 我们在本章回中介…

node教程(四)Mongodb+mongoose

文章目录 一、mongodb1.简介1.1Mongodb是什么?1.2数据库是什么?1.3数据库的作用1.4数据库管理数据的特点 2.核心概念3.下载安装与启动4.命令行交互4.1数据库命令4.3文档命令 二、Mongoose1.介绍2.作用3.使用流程4.插入文档5.mongoose字段类型 一、mongod…

el-cascader级联选择器选中一个全选中问题

问题 只选中一个却把同级全选中 解决 :props中添加label、value、children属性 label、value、children属性值需要和后端返回的集合中的字段名保持一致 后端返回数据:

3000 台 Apache ActiveMQ 服务器易受 RCE 攻击

超过三千个暴露在互联网上的 Apache ActiveMQ 服务器容易受到最近披露的关键远程代码执行 (RCE) 漏洞的影响。 Apache ActiveMQ 是一个可扩展的开源消息代理,可促进客户端和服务器之间的通信,支持 Java 和各种跨语言客户端以及许多协议,包括…

网络安全(网络安全)小白自学

想自学网络安全(黑客技术)首先你得了解什么是网络安全!什么是黑客! 网络安全可以基于攻击和防御视角来分类,我们经常听到的 “红队”、“渗透测试” 等就是研究攻击技术,而“蓝队”、“安全运营”、“安全…

【Midjourney入门教程2】Midjourney的基础操作和设置

文章目录 Midjourney的常用命令和基础设置1、 /imagine2、 /blend3、 /info4、 /subscribe5、 /settings(Midjourney的基础设置)6、 /shorten 有部分同学说我不想要英文界面的,不要慌: 点击左下角个人信息的设置按钮,找…

网际控制报文协议ICMP

网际控制报文协议ICMP 一.网际控制报文协议ICMP概述 为了更有效地转发IP数据报以及提高IP数据报交付成功的机会,TCPIP体系结构的网际层使用了网际控制报文协议(Internet Control Message Protocol,ICMP)[RFC 792].主机或路由器使用ICMP来发送差错报告报…

图解系列--路由器和它庞大的功能

03.01 何为路由器 路由器是指主要负责 OSI参考模型中网络层的处理工作,并根据路由表信息在不同的网络 之间转发IP 分组的网络硬件(图3-1)。这里的网络一般是指IP 子网,也可以称为广播域。此外,现在的路由器还会搭载其他各种各样的功能。 0…

【ES专题】ElasticSearch搜索进阶

目录 前言阅读导航前置知识特别提醒笔记正文一、分词器详解1.1 基本概念1.2 分词发生的时期1.3 分词器的组成1.3.1 切词器&#xff1a;Tokenizer1.3.2 词项过滤器&#xff1a;Token Filter1.3.3 字符过滤器&#xff1a;Character Filter 1.4 倒排索引的数据结构 <font color…

IDEA中如何移除未使用的import

&#x1f468;&#x1f3fb;‍&#x1f4bb; 热爱摄影的程序员 &#x1f468;&#x1f3fb;‍&#x1f3a8; 喜欢编码的设计师 &#x1f9d5;&#x1f3fb; 擅长设计的剪辑师 &#x1f9d1;&#x1f3fb;‍&#x1f3eb; 一位高冷无情的编码爱好者 大家好&#xff0c;我是全栈工…

Oracle(10)Managing Undo Data

目录 一、基础知识 1、AUM :Init Parameters AUM:初始化参数 2、AUM:Other Parameters AUM:其他参数 3、AUM:Sizing an UNDO TS AUM:调整UNDOTS的大小 4、AUM :Undo Quota AUM:撤消配额 5、Get Undo Segment Info 获取撤消段信息 二、基础操作 1、AUM:UNDO Tablespace …

MySQL:至少参与xxx参与的全部事件(二)

MySQL&#xff1a;至少参与xxx参与的全部事件&#xff08;二&#xff09; – WhiteNights Site 标签&#xff1a;MySQL 本来不难的&#xff0c;结果实验课上又没能当场做出来。还是回到宿舍复盘才看到问题所在&#xff0c;令人感慨。 头歌例题 仔细审题 任务描述 创建一个名…

SpringBoot框架使用AOP + 自定义注解实现请求日志记录

一、SpringBoot记录日志 文章目录 一、SpringBoot记录日志1.1、环境搭建1.2、配置FastJson1.3、自定义LogRecord注解1.4、定义日志实体类1.5、创建HttpRequestUtil工具类1.6、定义AOP切面1.7、编写测试类1.8、运行测试 1.1、环境搭建 搭建SpringBoot工程。引入【spring-boot-st…

2023年软件系统架构师论文【回忆版】

2023年11月5日&#xff0c;全国计算机等级下半年考试&#xff0c;北京市软件架构师考试其中有个考点在首都经济贸易大学丰台校区&#xff09;&#xff0c;地址&#xff1a;北京市丰台区花乡张家路口121号&#xff08;北门入校&#xff09; 注意&#xff1a;机考的考试时间有所变…

BIOS开发笔记 - HDA Audio

在PC中,音频输出是一个重要的功能之一,目前大多数采用的是英特尔高清晰音效(英语:Intel High Definition Audio,简称为HD Audio或IHD)方案,它是由Intel于2004年所提出的音效技术,能够展现高清晰度的音质效果,且能进行多声道的播放,在音质(音效质量)上超越过去的其他…

FFmpeg 硬件加速视频转码指南

基于 Windows 下演示&#xff0c;Linux 下也可以适用。 所使用 ffmpeg 版本为 BtbN 编译的 win64-gpl 版&#xff08;非 gpl-share&#xff09;&#xff0c;项目地址&#xff1a;BtbN / FFmpeg-Builds 也可以使用 gyan.dev 编译的 git-full 版&#xff0c;地址&#xff1a;gyan…

【自动控制原理】时域分析法:一阶、二阶、高阶系统的时间响应及动态性能

文章目录 第3章 时域分析法3.1 基本概念3.1.1 典型输入信号3.1.2 系统动态性能指标 3.2 一阶系统的时间响应及动态性能一阶系统的标准形式&#xff08;尾1标准型&#xff09;3.2.1一阶惯性环节的单位阶跃响应3.2.2一阶惯性环节的单位速度响应3.2.3一阶惯性环节的单位脉冲响应3.…

【gpt redis】原理篇

用的黑马程序员redis课程的目录&#xff0c;但是不想听讲了。后续都是用gpt文档获取的。 1.课程介绍(Av766995956,P145) 2.Redis数据结构-动态字符串(Av766995956,P146) sds 1M是个界限 其实他是个由c语言实现的结构体 有这么几个参数 len alloc flag char[] len是实际长度 …

idea插件(一)-- SequenceDiagram(UML自动生成工具)

目录 1. 安装 2. 默认快捷键 3. 操作说明 4. 导出为图片与UML类图 4.1 导出为图片&#xff1a; 4.2 导出 UML 类图 SequenceDiagram是从java、kotlin、scala&#xff08;Beta&#xff09;和groovy&#xff08;limited&#xff09;代码生成简单序列图&#xff08;UML&…