我看过两种方式的代码。
router.get(path, callback)
和
router.route(path).get(callback)
从周围的代码看,它们看起来相同。文档在这里:
和
其中方法可以是get
,post
等等。
为什么有两种方法可以做到这一点?我已经阅读过这些文档而且没有那么多帮助。
答案 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)