app.get()或router.get() – ExpressJs之间的区别

有什么区别:

var express = new express(); var app = new express(); app.get("/", function() { ..... }) 

和:

 var express = new express(); var router= express.Router(); router.get("/", function() { ..... }) 

app.get可以用来为顶层的应用程序创build路由。

从有关express.Router的文档

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

路由器需要安装到一个应用程序:

 const router = express.Router(); router.get("/", (res, req) => res.end()); router.post("/", (res, req) => res.end()); app.use("/empty", router); 

这使您可以更轻松地将几个路由的function封装到一个应用程序中,该应用程序将在特定路线下命名空间。

当在app.js中调用express()时,返回一个应用程序对象。 将一个应用程序对象想象成一个Express应用程序。

当express.Router()被调用时,会返回一个稍微不同的“小应用程序”。 “迷你应用程序”背后的想法是,你的应用程序中的不同路线可能会变得相当复杂,你可以将该逻辑移到一个单独的文件中。

查看此SO主题的细节。