Если router.all() просто соответствует всем методам, может ли это быть router.use()? и что router.use() различий между router.route()?

4
sinbar 30 Авг 2017 в 05:55

4 ответа

Лучший ответ

router.all() соответствует каждому протоколу http, router.use() предназначен для промежуточного программного обеспечения, а router.route() возвращает экземпляр одного маршрута, который затем можно использовать для обработки глаголов HTTP с дополнительным промежуточным программным обеспечением. Вы должны проверить документацию для получения дополнительной информации http://expressjs.com/fr/api.html

5
Always Sunny 30 Авг 2017 в 03:06

router.all : это означает, что не имеет значения метод запроса .. (post, get, put), если URL-адрес совпадает, выполните функцию.

Ex-router.all ("/ abc", fn) будет работать для всех запросов к / abc

router.use () : router.use () помогает вам писать модульные маршруты и модули. Вы в основном определяете промежуточное программное обеспечение для маршрутов.

Router.use ("/ pqr", pqrRoutes)

Теперь для всех запросов, начинающихся с / pqr, таких как / pqr / new или / pqr / xyz, можно обрабатывать внутри pqrRoutes.

router.route () : это хороший способ определить различные реализации метода для одной конечной точки URL.

Допустим, у вас есть две конечные точки API. router.get ("/ jkl") и router.post ("/ jkl"), с router.route () вы можете как бы объединить эти разные обработчики API.

Вы можете сказать router.route ("/ jkl"). get (fn1) .post (fn2)

5
rootkill 30 Авг 2017 в 03:08

< Сильный > < EM> { { X0 } }

Маршрутизаторы ведут себя как промежуточное ПО и могут быть .use()d приложением в других маршрутизаторах. Другими словами, маршрутизаторы позволяют разделить ваше большое приложение на многочисленные мини-приложения, которые вы можете позже собрать. Для небольших приложений это может быть излишним, но как только вы подумаете: «Этот app.js файл становится большим», пришло время подумать о том, чтобы разбить ваше приложение маршрутизаторами.

< Сильный > < EM> { { X0 } }

Метод router.route(path) используется для цепочки методов глагола HTTP. Например, при создании, чтении, обновлении и сервер удаления (CRUD) с конечными точками POST, GET, PUT и DELETE для URL-адреса / posts /: id (например, / posts / 53fb401) dc96c1caa7b78bbdb), мы можем использовать класс Router следующим образом:

var express = require('express');
var router = express.Router();
router.param('postId', function(request, response, next) {
// Find post by ID
// Save post to request
request.post = {
 name: 'Node.js',
 url: 'http://your-url/node-js-blog'
   };
return next();
});

Метод Router.route(path) обеспечивает удобство методов цепочки, что является более привлекательным способом структурировать свой код, чем перепечатывать роутер для каждого маршрута. В качестве альтернативы, мы можем использовать router.VERB(path, [callback...], callback) для определения маршрутов так же, как мы будет использовать app.VERB(). Точно так же методы router.use() и router.param() работают так же, как app.use() и { { }} Х6 .

0
Satish Patel 30 Авг 2017 в 04:32

App.all (), который не является производным от какого-либо метода HTTP. Этот метод используется для загрузки функций промежуточного программного обеспечения по пути для всех методов запроса.

app.all('/secret', function (req, res, next) {
  console.log('Accessing the secret section ...')
  next() // pass control to the next handler
})

Используйте класс express.Router для создания модульных, монтируемых обработчиков маршрутов. Экземпляр маршрутизатора представляет собой законченное промежуточное программное обеспечение и систему маршрутизации; по этой причине его часто называют «мини-приложением».

В следующем примере создается маршрутизатор как модуль, загружается в него функция промежуточного программного обеспечения, определяются некоторые маршруты и монтируется модуль маршрутизатора на пути в основном приложении.

var express = require('express')
var router = express.Router()

// middleware that is specific to this router
router.use(function timeLog (req, res, next) {
  console.log('Time: ', Date.now())
  next()
})

В основном мы используем .use, когда мы используем промежуточное программное обеспечение Express.Router

Используйте класс express.Router для создания модульных, монтируемых обработчиков маршрутов. Экземпляр маршрутизатора представляет собой законченное промежуточное программное обеспечение и систему маршрутизации; по этой причине его часто называют «мини-приложением».

В следующем примере создается маршрутизатор как модуль, загружается в него функция промежуточного программного обеспечения, определяются некоторые маршруты и монтируется модуль маршрутизатора на пути в основном приложении. var express = require ('express') var router = express.Router ()

// middleware that is specific to this router
router.use(function timeLog (req, res, next) {
  console.log('Time: ', Date.now())
  next()
})
// define the home page route
router.get('/', function (req, res) {
  res.send('Birds home page')
})

Мы можем использовать более одного маршрутизатора, у этого экземпляра маршрутизатора есть имя маршрутизатора, определенное ниже экспресс-определения. Вот документация для роутера https://expressjs.com/en/guide/routing.html

0
Mayank Singh Fartiyal 30 Авг 2017 в 03:12