Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
Node.js Express路由命名和排序如何确定优先级?
社区首页 >问答首页 >Node.js Express路由命名和排序如何确定优先级?

Node.js Express路由命名和排序如何确定优先级?

提问于 2018-04-02 00:33:00
回答 1关注 0查看 178

假设我的Express应用程序中有几条GET路线:

代码语言:javascript
运行
AI代码解释
复制
// music albums
app.get('/api/albums', routes.albums.getAlbums);
app.get('/api/albums/:id', routes.albums.getAlbum);
app.get('/api/albums/artwork', routes.albums.getAlbumArtwork);

我试图用下面的jQuery AJAX代码片段来打它们:

代码语言:javascript
运行
AI代码解释
复制
$("#retrieveAlbumArtwork").on("click", function() {
    $.ajax({
        url: "api/albums/artwork",
        type: "GET",
        data: {
            artist: $("#albumArtist").val(),
            title: $("#albumTitle").val()
        },
        // ... callbacks and such

由于某种原因,这个调用使用/:id参数而不是显式/artwork路由来击中第二个处理程序。像这样交换它们使它们按预期发挥作用:

代码语言:javascript
运行
AI代码解释
复制
// music albums
app.get('/api/albums', routes.albums.getAlbums);
app.get('/api/albums/artwork', routes.albums.getAlbumArtwork);
app.get('/api/albums/:id', routes.albums.getAlbum);

liwen223

发布于 2018-04-02 09:53:06

不,它不是。:id将匹配任何东西。所以/api/albums/artwork对于那场比赛完全有效。Express也支持RegExp匹配。因此,可以使用RegExp制作明确的数字匹配路线。

另一种选择是使用app.param作为API文档中的解释 http://expressjs.com/api.html#app.param

这允许你为路由器定义匹配参数,这样你就可以拥有一个URL,比如/api/albums/:albumIdwhere :albumId必须是数字的,albumId如果你愿意的话,你也可以在这个时候验证一个。

但总体而言,第二种方式是相当正常的,通常我会在顶部放置静态路由,然后放置动态路由,捕获所有错误,然后处理错误。

查看全部 1 条回答
为您推荐liwen223回答过的其他问题

目前直播答题的热门平台有哪些?

提问于 2018-02-071.7K
liwen223
每次都各种抱大腿,小白一只。
8人回答了此问题
相关文章
Express路由
一,创建一个路由模块router.js文件。 //这是路由模块 //1,导入express const express=require('express') //2,创建路由对象 const router = express.Router(); //3,挂载具体的路由 router.get('/user/list',(req,res)=>{ res.send('get user list ') }) router.post('/user/add',(req,res)=>{ res.send(
张苹果
2022/10/04
1.1K0
如何在Node.js和Express中上传文件
大量的移动应用程序和网站允许用户上传个人资料图片和其他文件。 因此,在使用Node.js和Express构建REST API时,通常需要处理文件上传。
ccf19881030
2020/10/26
6.9K0
如何在Node.js和Express中上传文件
Express 路由
前面说到Express有两个核心概念:Middleware和Routing。什么是Routing呢,简单来说就是http请求与服务端应答逻辑之间的映射关系。
李振
2021/11/26
1.6K0
Express路由是如何实现的?
Express是一个极简的Node.js后端开发框架,它最强大的地方在于它的路由实现,那么它的路由是如何实现的呢?下面给大家分享两段代码,希望大家能够有个简单的认识。
越陌度阡
2020/11/26
1K0
如何确定DevOps变更的优先级?
DevOps影响了整个SDLC,那么我们如何确定我们在何时应该首先完成哪些工作呢?
DevOps云学堂
2020/08/28
7230
如何确定DevOps变更的优先级?
6.vue-router之命名路由和命名视图
① 官方文档的解释:https://router.vuejs.org/zh/guide/essentials/named-routes.html 就是在routers配置路由名称的时候给路由定义不同的名字,这样的好处就是可以在使用router-link的to属性跳转路由的时候传一个对象从而实现与router.push一样的效果:
Ewall
2018/09/04
9750
6.vue-router之命名路由和命名视图
​如何处理Express和Node.js应用程序中的错误
使用Express创建API时,我们定义了路由及其处理程序。在理想情况下,API的使用者只会向我们定义的路由发出请求,并且路由将正常运行。但是,我们不会生活在理想的世界中:)。Express知道这一点,并使我们API中的错误处理变得轻而易举。
前端知否
2020/03/23
6.1K0
CSS选择器是如何确定优先级的?
先看下面的示例 <div id="content"> <p id="title">Hello world</p> </div> 有如下的2个css选择器 #title { color: red; } #content p { color: blue; } 他们都是设置 p 标签内字体的颜色,哪个会生效呢? 这就涉及到了css选择器优先级的积分规则 css为选择器设置了4个级别,值从左到右,左面的最大,一级大于一级,数位之间没有进制,级别之间不可超越 可以把它看成一个4位数:0.0.0.0,数值越大的
dys
2018/04/03
1.2K0
Node.js + express 的使用
变化的路由 我们再访问服务器时描绘涉及到许许多多的路由,这是我们不可能将他们都一一列举出来,所以我们就可以用 ‘ :’ 来解决,如下:
圆号本昊
2021/09/24
2.8K0
hapi vs. express [1] —— 路由
hapi vs. express [1] —— 路由 前言 express 与 hapi 是两个基于 nodejs 的 web server 开发框架,它们由于设计理念的不同,各有优缺点 本文主要介绍
IMWeb前端团队
2017/12/29
9200
Express框架之路由初识
Express框架是后台的Node框架,所以和jQuery、zepto、yui、bootstrap都不一个东西。
十月梦想
2018/08/29
6530
hapi vs. express [1] —— 路由
express 与 hapi 是两个基于 nodejs 的 web server 开发框架,它们由于设计理念的不同,各有优缺点
IMWeb前端团队
2019/12/04
8640
Node | Express路由简单使用
一、什么是路由? 在Express 中,路由指的是客户端的请求与服务器处理函数之间的映射关系。 二、Express中路由的组成 在Express中,路由分3部分组成:请求的类型、请求的URL地址、处理函数,格式如下: /*server是使用express创建的服务实例*/ server.METHOD(PATH,HANDLER) 三、路由的模块化 为了方便对路由进行模块化的管理,Express 不建议将路由直接挂载到app上,而是推荐将路由抽离为单独的模块。 将路由抽离成单独的模块的步骤如下
倾盖
2022/08/16
1.2K0
Node | Express路由简单使用
nodeJS之Express框架--路由
路由路径与请求方法结合,定义了可以发出请求的端点。路由路径可以是字符串,字符串模式或正则表达式。
IT工作者
2022/05/13
2K0
express的路由配置优化
1、不便于以后的扩展和维护,如果需要监听的URL越来越多,它看上去就会越来越糟糕了;
meteoric
2018/11/19
1.3K0
Express,Sequelize和MySQL的Node.js Rest API示例
本文翻译自Node.js Rest APIs example with Express, Sequelize & MySQL
ccf19881030
2020/11/10
13.1K0
Express,Sequelize和MySQL的Node.js Rest API示例
Vue路由详解(命名视图,路由守卫)
有时候想同时 (同级) 展示多个视图,而不是嵌套展示,例如创建一个布局,有 sidebar (侧导航) 和 main (主内容) 两个视图,这个时候命名视图就派上用场了。你可以在界面中拥有多个单独命名的视图,而不是只有一个单独的出口。如果 router-view 没有设置名字,那么默认为 default。
生南星
2019/07/22
2.1K0
Vue路由详解(命名视图,路由守卫)
Node.js 路由
我们要为路由提供请求的 URL 和其他需要的 GET 及 POST 参数,随后路由需要根据这些数据来执行相应的代码。
陈不成i
2021/07/12
2.3K0
Node.js + express的安装,配置
     首先下载node.js,并安装:http://nodejs.org/download/
爱拼才会赢
2021/10/18
2K0
点击加载更多

相似问题

Node.js Express路由命名和排序如何确定优先级?

1154

Node.js Express路由命名和排序如何确定优先级?

1465

Node.js Express路由命名和排序如何确定优先级?

1139

Node.js Express路由命名和排序如何确定优先级?

1268

Node.js Express路由命名和排序如何确定优先级?

1117
相关问答用户
某公司 | 程序员擅长1个领域
新浪微博 | 高级总监擅长4个领域
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档