Express JS 基本路由模板

Express JS Basic Routing Template

有人能给我解释清楚吗?

const express = require("express");
const app = express();

我得到了第一行代码,但是没有得到将变量 "app" 初始化为 express() 的概念?当我们导入 express 时,我们也可以访问 express()?

它在理论上有什么作用? express() 的那个 () 是做什么的? 我们总是必须这样做吗?

谢谢。

根据 documentation

The express() function is a top-level function exported by the express module

函数 returns 一个 app 对象,它本质上是一个 Express 应用程序。

The app object has methods for

  • Routing HTTP requests; see for example, app.METHOD and app.param.
  • Configuring middleware
  • Rendering HTML views; see
  • Registering a template engine; see app.engine.

如果您熟悉面向对象编程,那么想到这一点的方式就是创建一个实例。

当您导入 express 时,您正在导入 class。但是,您的服务器是 class 的一个实例。所以,当你打电话给

const app = express();

您正在启动您的服务器。您现在拥有可以与 app 交互的服务器的编码,而原始导入仅引用与该服务器相同的 class(即类似于模板)。函数 express() 只是为您初始化一个新的服务器对象。

从技术上讲,您可以有多个 'servers' 运行:

const app1 = express();
const app2 = express();

您可能希望它们彼此独立,这就是您不只使用顶级导入的原因。