我从 NodeJS 和 Express 4 开始,我有点困惑。我一直在阅读 Express 网站,但看不到 何时 使用路由处理程序或何时使用 express.Router
。
如我所见,如果我想在用户点击 /show
时显示页面或其他内容,例如我应该使用:
var express = require('express')
var app = express()
app.get("/show", someFunction)
一开始,我认为这是旧的(对于 Express 3)。是这样吗?或者这也是 Express 4 的方式?
如果这是 Express 4 中的方法,那么 express.Router
是做什么用的?
我阅读了与上面几乎相同的示例,但使用了 express.Router
:
var express = require('express');
var router = express.Router();
router.get("/show", someFunction)
那么,这两个例子有什么区别呢?
如果我只想做一个简单的测试网站,我应该使用哪一个?
原文由 nelson687 发布,翻译遵循 CC BY-SA 4.0 许可协议
应用程序.js
狗.js
调用
var app = express()
时,会返回一个应用对象。将此视为 主要应用程序。调用
var router = express.Router()
时,返回的 小程序 略有不同。 迷你应用程序 背后的想法是,应用程序中的每条路线都可能变得相当复杂,您将从将所有代码移至单独文件中受益。每个文件的路由器都变成了一个 小应用程序,它的结构与 主应用程序 非常相似。在上面的示例中, /dogs 路由的代码已移至其自己的文件中,因此不会弄乱 主应用程序。 /cats 和 /birds 的代码在它们自己的文件中的结构类似。通过将此代码分成三个 小应用程序,您可以单独处理每个应用程序的逻辑,而不必担心它会如何影响其他两个应用程序。
如果您有与所有三个路由相关的代码(中间件),您可以将它放在 主应用程序 中,在
app.use(...)
调用之前。如果您的代码(中间件)仅与其中一个路由相关,则可以将其仅放在该路由的文件中。