ExpressJS:app.get()v / s api.get()/ Router.get()

时间:2015-07-07 06:08:25

标签: node.js express

我对此有一些了解,但我仍然觉得我错过了一些东西。这是我到目前为止的理解: app.get()/app.post()主要用于向服务器进行AJAX调用。然而,Routes用于创建主要用于与DB /后端通信的API。

如果存在更多差异,有人可以详细说明吗?

4 个答案:

答案 0 :(得分:0)

路由器为您的路线提供嵌套级别。您可以将它们视为更传统的MVC应用程序中的“控制器”(实际的路由器路由是控制器上的方法)。

您可以定义一个要绑定到/foo/bar的路由器对象,.get()下的每个.post .use()/foo/bar都会有/路径,无论如何。

它使重用组件变得有用,因为内部路由本身在它被调用的路径下不知道。因此,您可以在不同路径下的许多应用程序中重用相同的路由方案。

我倾向于总是使用路由器对象(即使它只有一个而且是protected void ChangeEntity (IQueryable<BaseClass> list) {} ),因为它使代码读得更好并且更有条理。

答案 1 :(得分:0)

您是否使用get和post方法创建任何表单,如果没有创建,则感觉到行为。

快速路线方法 的 app.get() 通过此功能,您可以创建GET api,可以通过浏览器轻松打开并从查询字符串中获取数据。

<强> app.post() 这将创建发布网址,您也可以从正文中获取数据。

答案 2 :(得分:0)

不完全是。它们实际上基本上是一回事。与仅使用app实例相比,路由更具可重用性/可测试性。

例如:

app.get('/Posts/:id', ...

相当于

var route = new Router();
route.get('/:id', ...

app.use('/Posts', route);

在路线与应用程序中您可以执行的操作没有任何限制,因此请不要将它们与功能级别分开考虑。对于良好的架构/测试/等等,这一点更为重要。

答案 3 :(得分:0)

感谢大家的快速回复。我在网上找到了几个文档,它们准确地描述了它们并清除了对它们的怀疑。请参考以下两个文档以供参考:

http://expressjs.com/4x/api.html#router

https://scotch.io/tutorials/learn-to-use-the-new-router-in-expressjs-4