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

Mor*_*ris 4 node.js express

有什么区别:

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

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

.....
})
Run Code Online (Sandbox Code Playgroud)

和:

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

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

    .....
    })
Run Code Online (Sandbox Code Playgroud)

Exp*_*lls 7

app.get 可用于在顶层为您的应用程序创建路径.

从文档中了解 express.Router

使用express.Router类创建模块化,可安装的路由处理程序.Router实例是一个完整的中间件和路由系统; 因此,它通常被称为"迷你app".

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

const router = express.Router();

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

app.use("/empty", router);
Run Code Online (Sandbox Code Playgroud)

这使您可以更轻松地将多个路由的功能封装到应用程序中,该应用程序将在特定路径下进行命名空间.


Jee*_*eet 5

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

当调用express.Router()时,会返回一个略有不同的“迷你应用程序”。“迷你应用程序”背后的想法是应用程序中的不同路线可能会变得非常复杂,并且您可以通过将该逻辑移动到单独的文件中而受益。

检查此SO 线程了解详细信息。