Express

时间:2017-11-13 18:44:57

标签: javascript node.js express

我看过两种方式的代码。

router.get(path, callback)

router.route(path).get(callback)

从周围的代码看,它们看起来相同。文档在这里:

router.route

router.METHOD

其中方法可以是getpost等等。

为什么有两种方法可以做到这一点?我已经阅读过这些文档而且没有那么多帮助。

3 个答案:

答案 0 :(得分: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 :(得分:1)

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

正如您特别要求router.METHOD()&amp; router.route(),所以我只关注这两种方法。

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

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

答案 2 :(得分:0)

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

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

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

因此,您可以在路径get上同时使用post/user方法。

如果你想设置像CRUD这样的东西:

enter image description here

然后我建议您使用router.METHOD(path, callback)方法,因为您希望每条路线都有唯一的路径。