首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >route.use(),route.all(),route.route()

route.use(),route.all(),route.route()
EN

Stack Overflow用户
提问于 2017-08-30 02:55:01
回答 4查看 10.7K关注 0票数 6

如果router.all()只匹配所有的方法,那么它会由router.use()代替吗?以及router.use()router.route()之间的区别

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2017-08-30 02:59:38

router.all()匹配每个http协议,router.use()用于中间件,router.route()返回单个路由的实例,然后您可以用可选中间件来处理HTTP谓词。你应该向文档查询更多的信息。

票数 6
EN

Stack Overflow用户

发布于 2017-08-30 03:08:23

router.all:这意味着,请求的方法并不重要。(post、get、put),如果url匹配,则执行函数。

前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)

票数 10
EN

Stack Overflow用户

发布于 2017-08-30 03:12:43

app.all(),它不是从任何HTTP方法派生的。此方法用于在所有请求方法的路径上加载中间件功能。

代码语言:javascript
复制
app.all('/secret', function (req, res, next) {
  console.log('Accessing the secret section ...')
  next() // pass control to the next handler
})

使用express.Router类创建模块化的、可挂载的路由处理程序。路由器实例是一个完整的中间件和路由系统;因此,它通常被称为“迷你应用程序”。

下面的示例创建一个路由器作为一个模块,在其中加载一个中间件功能,定义一些路由,并在主应用程序中的路径上挂载路由器模块。

代码语言:javascript
复制
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 =需要量(‘express’) var路由器= express.Router()

代码语言:javascript
复制
// 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
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45951163

复制
相关文章

相似问题

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