Express中的router.METHOD()和router.route()方法有什么区别

问题描述 投票:3回答:3

我见过代码写的两种方式。

router.get(path, callback)

router.route(path).get(callback)

从周围的代码看起来相当。文档在这里:

router.route

router.METHOD

方法可以是getpost等。

为什么有两种方法可以做到这一点?我已经阅读了文档,他们没有那么多帮助。

javascript node.js express
3个回答
1
投票

router.METHOD(路径)

router.methods()在Express中提供路由功能,其中METHOD是HTTP方法之一,例如GET,PUT,POST

router.get(path,callback);

router.route(路径)

返回单个路由的实例,然后可以使用该实例来处理HTTP方法。

此外,它避免了重复的路由命名,从而输入错误。

因此,使用该实例,您可以一次定义所有http处理程序。喜欢

router.route(path).get(callback).put(callback).post(callback).delete(callback);

1
投票

这些只是express提供的路由器对象的两种方法。根据文档,总共有五种与路由器对象相关的方法。

由于你特别要求router.METHOD()router.route(),所以我只关注这两种方法。

首先,让我们先采用router.MEHTOD()方法。它只是将传入的请求与提供的路径进行匹配,并根据所使用的方法执行适当的操作。 METHOD是HTTP方法之一,例如get,put,post等。这里有一个问题,即有时处理这些不同的命名约定会变得很麻烦,并且可能导致重复的路由命名而且事情搞得一团糟最终在处理大型复杂的应用程序时。

但是,在router.route()方法的情况下,它返回单个路由(提供的路径)的实例,然后可以与http动词一起使用。它重用了所提供的路径,避免了混淆,使代码看起来干净,因此错误的可能性更小。


0
投票

我总是使用router.METHOD(path, callback)

所以ONE方法,ONE路径,处理一个回调。

您命名的第二个方法可以有一个处理多个方法的路径。

所以你可以在路径get上同时拥有post/user方法。

例如,如果您想设置类似CRUD路线的东西,请执行以下操作:

enter image description here

然后我建议你使用router.METHOD(path, callback)方法,因为你想为每条路线提供独特的路径。

© www.soinside.com 2019 - 2024. All rights reserved.