имеет значение порядок маршрутов в Express? - PullRequest
0 голосов
/ 09 октября 2019

я пытаюсь построить эту простую CMS с маршрутами Restfull в Express.js,

она работала просто отлично. Затем я попытался немного изменить его, чтобы мои маршруты стали более точными (или нет). Поэтому я переместил маршрут router.get('/new') ниже маршрута router.post('/'), и он просто перестал работать как обычно. когда я пытаюсь получить /new маршрут, запрос переходит к router.get('/')

, это связанная часть моего app.js (удалены ненужные части)

var express=require('express'),
blogRoutes =require('./routes/blogs.js'),
app        =express();

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

, и этомой маршрут блогов в файле blogs.js (удалены ненужные части)

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){...});

, поэтому я хочу знать, как это работает, потому что я не нашел ничего полезного в порядке следования маршрутов, кроме изображений маршрутов RESTfull наНет, что new перед созданием маршрутов. Тем не менее, есть какой-то смысл, почему он не может правильно его обработать.

Ответы [ 2 ]

0 голосов
/ 09 октября 2019

Из документов Express:

Маршрут будет сопоставлять любой путь, который следует сразу по его пути, с символом «/ обработ.

», например: 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'.

0 голосов
/ 09 октября 2019

Попробуйте переместить router.get('/',function(req,res){...}); в конец списка, это корневой маршрутизатор.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...