好问题,
我们有这个:
const express = require("express"),
const app = express()
“express 常量仍然用于一些与配置应用程序相关的 Express.js 工具。app 主要用于为应用程序的数据移动和用户交互而创建的任何东西。”
参考:乔纳森·韦克斯勒。使用 Node.js 进行编程(Kindle 位置 2619-2621)。曼宁出版社。
据我了解,
const express 是 express 模块所需的方法。
const express = require("express")
然后你使用 express() 方法来实例化一个名为“const app”的网络服务器
const app = express()
所以 const 应用程序实际上是 express.js 开发人员制作的 Web 服务器对象,它抽象了 2 个主要核心功能:
- 网络服务器路由映射。即注册什么 (req,res) => {} 回调函数来调用哪些路由。
所以当你的浏览器发出请求时(用 req.method 和 req.url 标识)
使用 app.get() app.post() 方法预先注册的正确回调的 express 调用
- http.createServer() 女巫是实际创建 Web 服务器并使用其映射(参见 1)执行 app.get() 和 app.post( )。 handle_function 负责处理来自浏览器的请求,并使用 req.url 和 req.method 来确定要在其映射中使用的回调(再次参见 1 以完整循环。)
所以 app 是一个对象,它使开发人员不必担心使用适当的句柄回调映射浏览器请求,也不必创建网络服务器。
此外,您还获得了一系列新的应用程序方法,可让您使用您的应用程序做不同的事情。在定义请求和响应时,您还会获得一堆方法。像 res.send()
例如浏览器对“/about”执行“GET”
并且应用程序正在侦听并接收请求(在应用程序对象中抽象)
然后根据它的抽象映射执行回调(可能要感谢 app.listen() 方法??)
希望这是有道理的。