我从NodeJS和Express 4开始,我有点困惑。我一直在阅读Express网站,但不知道什么时候使用路由处理程序或什么时候使用Express . router。
正如我所看到的,如果我想在用户点击/show时显示一个页面或其他东西,例如,我应该使用:
var express = require('express')
var app = express()
app.get("/show", someFunction)
一开始,我认为这是旧的(快车3)。这是对的,还是这是快车4的方式?
如果这是特快4的做法,什么是特快。路由器用于?
我看到了几乎和上面相同的例子,但是使用了express。路由器:
var express = require('express');
var router = express.Router();
router.get("/show", someFunction)
那么,这两个例子有什么不同呢?
如果我只是想做一个简单的测试网站,我应该使用哪一个?
假设您的应用程序有点复杂。因此,我们首先要做的是将应用程序划分为多个模块,这样一个模块中的更改就不会影响其他模块,您可以继续在各个模块上工作,但最终您需要将所有内容集成到一个模块中,因为您正在构建单个应用程序。这就像我们有一个主应用程序和几个子应用程序,它们的父应用程序是主应用程序。
当我们创建父应用程序时,我们使用
const express = require("express");
const parent = express();
对于父应用程序,我们需要引入子应用程序。但由于子应用程序并不是完全不同的应用程序(因为它们运行在相同的上下文中- java术语),express提供了通过express的Router函数来实现的方法,这就是我们在每个子模块文件中所做的,并调用这样的子模块aboutme。
const express = require("express");
export const router = express.Router();
通过导出,我们使这个模块可供其他人使用,由于我们已经模块化了,我们需要通过节点的require函数使模块文件可用于父应用程序,就像任何其他第三方模块一样,父文件看起来像这样:
const express = require("express");
const parent = express();
const child = require("./aboutme");
在我们让这个子模块对父应用程序可用之后,我们需要告诉父应用程序什么时候使用这个子应用程序。假设当一个用户点击了关于我的路径,我们需要关于我的子应用程序来处理请求,我们使用Express的use方法来做到这一点:
parent.use("/aboutme", child);
在一个镜头中,父文件看起来是这样的:
const express = require("express");
const parent = express();
const child = require("./aboutme");
parent.use("/aboutme", child);
最重要的是,父进程可以启动子进程不能启动的服务器。希望这能说明问题。要了解更多信息,你可以查看源代码,这需要一些时间,但它给了你很多信息。