app.get()和app.route()。get()之间的区别

时间:2019-06-24 02:15:27

标签: javascript node.js express server backend

这两个语句有什么区别?

app.get('/',someFunction);

app.route('/').get(someFunction);

请注意,我没有比较router.get和app.get

1 个答案:

答案 0 :(得分:3)

假设您要在同一路径上执行三条路线:

app.get('/calendarEvent', (req, res) => { ... });
app.post('/calendarEvent', (req, res) => { ... });
app.put('/calendarEvent', (req, res) => { ... });

以这种方式进行操作需要您每次重复路由路径。

您可以改为:

app.route('/calendarEvent')
  .get((req, res) => { ... })
  .post((req, res) => { ... })
  .put((req, res) => { ... });

如果您在同一条路径上有多个不同动词的路由,则基本上只是一条捷径。我从来没有机会使用它,但是显然有人认为它会很方便。

如果您拥有仅这三种途径所独有的某种通用中间件,它可能会更加有用:

app.route('/calendarEvent')
  .all((req, res, next) => { ... next(); })
  .get((req, res) => { ... })
  .post((req, res) => { ... })
  .put((req, res) => { ... });

出于类似的目的,也可以使用新的路由器对象。


而且,如果我不解释这两个语句之间没有区别(这是您要求的一部分),我想我会被遗忘的:

app.get('/',someFunction); 
app.route('/').get(someFunction);

他们做的完全一样。我剩下的答案是关于第二种方法的其他选择。