Nodejs / Express - 为什么http.createServer(app)中需要app?

时间:2018-03-05 07:57:09

标签: node.js express

// get dependencies
const express = require("express");
const http = require('http');
const app = express();

const server = http.createServer(app);

为什么http.createServer(app)中需要应用程序?和http.createServer()有什么区别?

我已阅读文档,但我仍然不明白。谁能解释一下?

2 个答案:

答案 0 :(得分:1)

createServer方法需要一个对象来定义如何处理对服务器的请求。检查this。您传递的应用程序实际上是您希望如何处理每个请求。如果你没有传递任何东西,它只会启动一个服务器,并且每个收到的请求都不会发生任何事情。

答案 1 :(得分:1)

app传递给http.createServer的原因与Dependency Injection有关,这是一种定义外部依赖关系的模式。

http.createServer接受将在内部用于处理传入消息和传出响应的外部类。

这允许您编写自己的类来处理传入/传出消息,而无需自己修改http的内部。在您的情况下,您正在使用Express的课程。