express路由的介绍与使用

一、什么是路由?

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

通俗来说:在Web开发中,路由是指根据不同的请求路径和请求方法,将请求分发到相应的处理函数、模块或中间件。简单来说,就是URL到函数的映射

二、路由的作用 ?

可以让我们根据不同的 URL 来执行不同的业务逻辑,并返回相应的响应结果

通过合理地设计路由,可以实现页面跳转、接口调用等各种需求。

三、路由的原理?

Node.js的路由功能是通过 HTTP 模块来实现的。当收到一个 HTTP 请求时,Node.js 会通过解析请求的 URL 和请求方法,来确定应该执行哪个处理函数或中间件。

四、路由和express框架的联系?

尽管在纯Node.js环境中可以实现路由,但使用Express.js等框架可以大大简化路由的开发过程,并提供更多的功能和灵活性。

在Node.js中,路由(Routing)是指根据用户请求的URL来决定服务器应如何响应的过程。Express.js是一个基于Node.js的流行框架,它提供了强大的路由功能来简化Web应用程序的开发。

Express.js中,路由是通过使用app.get()、app.post()、app.put()、app.delete()等方法来定义的。这些方法允许您指定URL路径和处理程序函数,当URL匹配指定的路径时,将调用处理程序函数来处理请求。

五、路由的使用?

一个路由的组成有 请求方法、路径、回调函数

express中提供了一系列的方法,可以很方便的使用路由。

使用格式:app.<method请求方法>(path,callback)

代码示例:

 1.先在终端下载express包    npm install express

2.导入express

const express=require('express');

3.创建应用对象

const app=express();

5.监听端口,启动服务

app.listen(3000,()=>{

    console.log('服务器已启动,查看http://127.0.0.1:3000');

})

4.创建路由具体使用:

(1)app.get

app.get('/home',(req,res)=>{
    res.end('hello express');
});
app.get('/',(req,res)=>{
    res.end('home');
});

(2)app.post

先建一个表单:点击提交来模拟一个post请求

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <form method="post" action="http://127.0.0.1:3000/login">
        <input type="text">
        <button>提交</button>
    </form>
</body>
</html>
app.post('/login',(req,res)=>{
    res.end('login');
});

 点击提交按钮

 

 

(3)app. all

匹配所有方法

app.all('/all',(req,res)=>{
    res.end('all all');
});

(4)404响应

app.get('*',(req,res)=>{
    res.end('404 not Found');
});

六、获取路由参数

1》定义:路由参数:指的是url路径中的参数(数据)

2》代码示例:

// 1.导入express
const express=require('express');
// 2.创建应用对象
const app=express();
// 3.获取请求的路由规则
app.get('/:id.html',(req,res)=>{
    // 获取url路由参数
    console.log(req.params.id);//params用于储存所有的路由参数
    res.send('详情页面');


});
app.listen(3000,()=>{
    console.log('启动成功,点击可查看 http://127.0.0.1:3000');
})

七、根据路由参数显示 不同信息

在message.json里面储存我的任务信息

{
    "message":[
        {
            "name":"张三",
            "picture":"https://p1.ssl.qhimg.com/t01946cc9fb96648eff.png",
            "id":1
        },
        {
            "name":"李四",
            "picture":"https://tse2-mm.cn.bing.net/th/id/OIP-C.zzc-JXFd2P-Ab-xJqFeGiQHaIX?rs=1&pid=ImgDetMain",
            "id":2
        }
    ]
}
// 1.导入express
const express=require('express');
// 导入json文件
const {message}=require('./message.json'); //给message进行结构赋值,使得输出结果从一个对象变成了一个数组
console.log(message);
// 2.创建应用对象
const app=express();
// 3.获取请求的路由规则
app.get('/message/:id.html',(req,res)=>{
    // 获取url路由参数
   let id=req.params.id; //或者结构赋值 let {id}=req.params;
   //  在数组中寻找对应id的数据
   let result=message.find(item=>{
    if(item.id===Number(id)){
        return true;
    }
   });
//    console.log(result);
//    res.end('hello express');

// 判断result
if(!result){
    res.statusCode=404;
    res.end(`<h1>404 Not Found<h1>`);
    return
}
res.end(
`<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
<h2>${result.name}</h2>
<img src="${result.picture}" alt= />
</body>
</html>`
);


});
app.listen(3000,()=>{
    console.log('启动成功,点击可查看 http://127.0.0.1:3000');
})

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

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

相关文章

【运维心得】双WAN配置的一个误区

目录 双WAN配置及优势 实际案例 解决之道 最后总结 双WAN配置及优势 什么是双WAN配置&#xff0c;这里就不多赘述&#xff0c;简单的说&#xff0c;首先你要有一台支持双WAN口的路由器&#xff0c;目前大多数企业级路由器都具备了这个功能。甚至有些家用路由器也有此类功能…

揭秘:水滴式粉碎机为何如此受欢迎

在粉碎机市场中&#xff0c;水滴式粉碎机以其D特的设计和G效的性能脱颖而出&#xff0c;成为众多用户的选择产品。那么&#xff0c;水滴式粉碎机究竟有何魅力&#xff0c;能够赢得如此广泛的赞誉呢&#xff1f; 首先&#xff0c;水滴式粉碎机的G效性能是其受欢迎的关键因素之一…

【软件设计师】下午题总结-数据流图、数据库、统一建模语言

下午题总结 1 试题一1.1 结构化语言 2 试题二弱实体增加权限增加实体间联系和联系的类型 3 试题三3.1 UML关系例子 3.2 例子&#xff08;2016上半年&#xff09;3.3 设计类分类3.3.1 接口类3.3.2 控制类3.3.3 实体类 3.4 简答题3.4.1 简要说明选择候选类的原则3.4.2 某个类必须…

基于EBAZ4205矿板的图像处理:09基于sobel边缘检测的图像锐化

基于EBAZ4205矿板的图像处理&#xff1a;09基于sobel边缘检测的图像锐化 项目全部文件 随后会上传项目全部文件 先看效果 锐化的有点过头了&#xff0c;不过我也懒得改了&#xff0c;想要改也很简单&#xff0c;无非就是给卷积运算后的结果加个系数&#xff0c;通过改系数调…

Java面试真题日常练习

题目&#xff1a;反转字符串 描述&#xff1a;编写一个函数&#xff0c;输入一个字符串&#xff0c;将其反转并返回结果。 解题思路&#xff1a;可以使用两个指针&#xff0c;一个指向字符串的开头&#xff0c;一个指向字符串的末尾&#xff0c;然后不断交换两个指针所指的字符…

什么是 UUID,uuid

文章目录 一、是什么二、为什么三、怎么用 标题&#xff1a;深入探讨UUID&#xff1a;全球唯一标识符的秘密 一、是什么 在当今数字化时代&#xff0c;唯一标识符&#xff08;UUID&#xff09;在计算机科学领域扮演着重要的角色。UUID是一种用于标识信息的唯一字符串&#xff0…

探索编程乐趣:绘制螺旋图的奇幻之旅

新书上架~&#x1f447;全国包邮奥~ python实用小工具开发教程http://pythontoolsteach.com/3 欢迎关注我&#x1f446;&#xff0c;收藏下次不迷路┗|&#xff40;O′|┛ 嗷~~ 目录 一、引言&#xff1a;编程的魔法世界 二、绘制螺旋图的准备工作 三、代码实战&#xff1a;…

jetcache缓存

1 介绍 是阿里的双极缓存&#xff0c;jvm-->redis-->数据库 文档&#xff1a;jetcache/docs/CN at master alibaba/jetcache GitHub 2 注意事项 使用的实体类一定实现序列化接口定时刷新注解&#xff0c;慎用 它会为每一个key创建一个定时器 &#xff1a;场景为&…

opencv--形态学(开运算、闭运算、形态学梯度、顶帽、黑帽)

开运算 先腐蚀再膨胀&#xff0c;消除细小点、毛刺、连接点等等情况 闭运算 先膨胀再腐蚀&#xff0c;填充孔洞、增强连接点等等情况&#xff0c;或者大家说的增加明亮度 形态学梯度 使用膨胀的图减去腐蚀的图&#xff0c;简单理解就是二值化后形状膨胀后会使得物体变大&am…

14 vue学习:透传Attributes

Attributes 继承 “透传 attribute”指的是传递给一个组件&#xff0c;却没有被该组件声明为 [props]或 [emits]的 attribute 或者 v-on 事件监听器。最常见的例子就是 class、style 和 id。 当一个组件以单个元素为根作渲染时&#xff0c;透传的 attribute 会自动被添加到根元…

【openlayers系统学习】3.5colormap详解(颜色映射)

五、colormap详解&#xff08;颜色映射&#xff09; ​colormap​ 包是一个很好的实用程序库&#xff0c;用于创建颜色图。该库已作为项目的依赖项添加&#xff08;1.7美化&#xff08;设置style&#xff09;&#xff09;。要导入它&#xff0c;请编辑 main.js​ 以包含以下行…

抖音视频怎么去水印保存部分源码|短视频爬虫提取收集下载工具

抖音视频怎么去水印保存部分源码|短视频爬虫提取收集下载工具 抖音视频去水印保存部分源码&#xff1a; 通过使用Python中的requests、re和os等库&#xff0c;可以编写如下代码来实现抖音视频去水印保存的功能。 短视频爬虫提取手机下载工具的使用方法&#xff1a; 该工具主…

3.1 掌握RDD的创建

在Apache Spark中&#xff0c;RDD&#xff08;Resilient Distributed Dataset&#xff09;是一个基本的、不可变的、分布式的和可分区的数据集。它能够自动进行容错处理&#xff0c;并支持在大规模集群上的并行操作。RDD之间存在依赖关系&#xff0c;可以实现管道化&#xff0c…

2024电工杯B题:大学生平衡膳食食谱的优化设计及评价

大学时代是学知识长身体的重要阶段&#xff0c;同时也是良好饮食习惯形成的重要时期。这一特 定年龄段的年轻人&#xff0c;不仅身体发育需要有充足的能量和各种营养素&#xff0c;而且繁重的脑力劳动和 较大量的体育锻炼也需要消耗大量的能源物质。大学生中饮食结构不合理以及…

服务器监控运维方案,一体化智能观测服务器状态

随着信息技术发展&#xff0c;服务器已经成为支撑各类应用系统的核心基础设施。业务数量的日益增长和稳定运行的高要求&#xff0c;也给服务器的稳定性与可靠性建立了更高的标准。然而&#xff0c;传统的服务器管理方式往往难以发现潜在问题&#xff0c;导致故障预警与处置的滞…

水电集中抄表是什么?

1.定义分析&#xff1a;水电集中抄表 水电集中抄表是一种现代化能源管理体系方法&#xff0c;它利用先进的信息科技&#xff0c;如物联网技术、云计算等&#xff0c;完成对水电表数据的远程智能采集与处理。这种方法改变了传统的人工上门服务抄表方式&#xff0c;提高了效率&a…

Apache Doris 基础(一) -- Getting Started

Apache Doris 开源、实时数据仓库 Apache Doris是一个用于实时分析的现代数据仓库。 它提供大规模闪电般的实时数据分析。 实时获取和存储 在一秒钟内基于推的微批处理和基于拉的流数据获取。实时更新&#xff0c;追加和预聚合的存储引擎闪电般的查询 使用列式存储引擎、MPP架构…

【C语言深度解剖】(14):结构体内存对齐(详细配图讲解)

&#x1f921;博客主页&#xff1a;醉竺 &#x1f970;本文专栏&#xff1a;《C语言深度解剖》 &#x1f63b;欢迎关注&#xff1a;感谢大家的点赞评论关注&#xff0c;祝您学有所成&#xff01; ✨✨&#x1f49c;&#x1f49b;想要学习更多C语言深度解剖点击专栏链接查看&…

顶顶通实时质检系统-黑名单拦截功能配置流程

文章目录 前言联系我们配置流程一、黑名单导入二、白名单导入三、外部黑名单四、靓号规则五、创建拦截规则六、拦截条件七、功能配置 拦截记录与统计拦截记录拦截统计 前言 上篇文章讲解了顶顶通实时质检系统黑名单的功能介绍&#xff0c;本篇文章主要讲解顶顶通黑名单拦截功能…

李斌阻击马斯克,也不放过李想

市场唯一不变的就是变化。 当年特斯拉开放专利&#xff0c;引起了国内电动车的创业潮&#xff0c;蔚来比小鹏、理想早几个月成立&#xff0c;也是造车新势力中首家实现交付的品牌。 但时过境迁&#xff0c;现在已经不是蔚来领衔“蔚小理”的时代了&#xff0c;理想是其中销量…