javascript - app.get() 和 app.route().get() 的区别

标签 javascript node.js express server backend

这两个语句有什么区别:

app.get('/',someFunction);

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

请注意我不是在比较 router.get 和 app.get

最佳答案

假设你想在同一条路径上做三个路由:

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);

他们做的事情完全一样。我的其余回答是关于您可以使用第二个选项做些什么。

关于javascript - app.get() 和 app.route().get() 的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56729136/

相关文章:

node.js - Webpack DevServer -> 代理 HTTPS 资源 -> UNABLE_TO_VERIFY_LEAF_SIGNATURE

javascript - 我的 html 中的第一个按钮不请求发布,但其他按钮工作正常

javascript - 带有 express 的 socket.io 更新 DOM 中的变量

javascript - 从 Alfresco 的操作按钮获取文档路径和票证

javascript - 如何用javascript触发css翻译动画

javascript - 保存后主干网未使用 save() 发出 put 请求

javascript - Node 自动创建 session 变量?

javascript - redux.js 中的 fetch(url) 使用错误的端口

javascript - CSS:悬停时文本覆盖在图像上

mysql - NodeJS mysql 模块将 localhost 转换为 127.0.0.1 并且连接失败