首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在Express中,路由的顺序重要吗?

在Express中,路由的顺序重要吗?
EN

Stack Overflow用户
提问于 2019-10-10 02:41:48
回答 2查看 1.9K关注 0票数 1

我正在尝试建立这个简单的CMS与Restfull路由在Express.js中,

它工作得很好。然后我试着把它改小一点,让我的路由更整洁(或者不整齐),我把router.get('/new')路由移到了router.post('/')路由下面,它就不再正常工作了。当我尝试获取/new路由时,请求转到router.get('/')

这是我的app.js的相关部分(去掉了不必要的部分)

代码语言:javascript
运行
复制
var express=require('express'),
blogRoutes =require('./routes/blogs.js'),
app        =express();

app.use('/blogs',blogRoutes);

这是我在blogs.js文件中的博客路径(去掉了不必要的部分)

代码语言:javascript
运行
复制
var express = require('express'),
    router  = express.Router();


router.get('/',function(req,res){...});
router.get('/:id',function(req,res){...});

router.post('/',function(req,res){...});
router.get('/new',function(req,res){...});

router.get('/:id/edit',function(req,res){...});
router.put('/:id',function(req,res){...});
router.delete('/:id',function(req,res){...});

所以我想知道这是如何工作的,因为我没有发现任何关于路由顺序的有用信息,除了在创建routes.yet之前,网络上的RESTfull路由图像,它确实有任何意义,为什么它不能正确处理它。

EN

Stack Overflow用户

发布于 2019-10-10 02:48:56

来自Express docs:

路由将匹配其路径后面紧跟其路径的任何路径,并带有“/”。

例如: app.use("/apple",...)将匹配“/apple”,“/apple/images”,“/apple/images/news”,

诸若此类。

router.get('/',function(req,res){...});移至底层是一种健康的方法。

如果你把router.get('/:id',function(req,res){...});移到router.get('/new',function(req,res){...});下面,应该可以解决你的问题。把router.get('/:id'放在router.get('/:id/edit'之前是个好主意。

票数 2
EN
查看全部 2 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58310355

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档