表达,区分route.use(),route.all(),route.route()

sin*_*bar 4 javascript node.js express

如果router.all()只匹配所有方法,可以改为router.use()吗?和router.use()之间的区别是router.route()什么?

小智 8

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 端点定义不同 Method 实现的好方法。

假设您有两个 api 端点。router.get("/jkl") 和 router.post("/jkl"),通过 router.route() 你可以组合这些不同的 api 处理程序。

你可以说 router.route("/jkl").get(fn1).post(fn2)


Azo*_*son 5

router.all()匹配每个http协议,router.use()适用于中间件,并router.route()返回单个路由的实例,然后您可以使用该路由通过可选的中间件来处理HTTP动词。您应该查看文档以获取更多信息http://expressjs.com/fr/api.html