app.get()和router.get()之间的区别 - ExpressJs

10

什么是以下两者的区别:

var express = new express();
var app = new express();

app.get("/", function() {

.....
})

而且:

var express = new express();
var router= express.Router();

    router.get("/", function() {

    .....
    })

3
请查看此链接:https://dev59.com/nV4c5IYBdhLWcg3wHHGY - Asif Saeed
这个回答解决了你的问题吗?express.Router和app.get之间的区别? - rflw
2个回答

13

app.get 可以在应用的顶级创建路由。

根据关于 express.Router 的文档:

使用 express.Router 类来创建可模块化、可挂载的路由处理器。Router 实例是完整的中间件和路由系统,因此通常被称为“迷你应用程序”。

需要将路由器挂载到应用程序上:

const router = express.Router();

router.get("/", (res, req) => res.end());
router.post("/", (res, req) => res.end());

app.use("/empty", router);

这使您更轻松地封装多个路由的功能,这些路由将命名空间设置为特定路由下的应用程序。


1
啊,这太有帮助了。 - John Harding

5
当在app.js中调用express()时,会返回一个应用程序对象。将应用程序对象视为Express应用程序。
当调用express.Router()时,会返回一个稍微不同的“迷你应用程序”。“迷你应用程序”的想法是您的应用程序中的不同路由可能变得非常复杂,并且您将受益于将该逻辑移动到单独的文件中。
有关详细信息,请参见SO Thread

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接