Почему мы передаем «приложение» в http.createServer (приложение) - PullRequest
0 голосов
/ 20 марта 2020

Почему мы передаем «app» в http.createServer (app), поскольку мы также можем передать

например:

var app = require('./app')
const http = require('http')
const port = 3500 || process.env.PORT


var server = http.createServer(app) //here we pass app

, в другом коде мы передаем некоторые другой аргумент, такой как этот

https.createServer(function (req, res) {
  res.writeHead(200, {'Content-Type': 'text/plain'});
  res.write('Hello World!');
  res.end();
}).listen(port)

1 Ответ

0 голосов
/ 20 марта 2020

В вашем первом примере я предполагаю, что app представляет экземпляр Express из чего-то вроде этого:

const app = express();

Если это так, то app - это функция обработчика запроса, которая также имеет свойства. Вы можете передать его так:

var server = http.createServer(app); 

, потому что эта функция app специально предназначена для прослушивания http-запроса, которому передаются аргументы (req, res) из входящего http-запроса, как вы можете видеть здесь в do c.

Или, в Express, вы также можете сделать:

const server = app.listen(80);

В этом случае он будет выполнять http.createServer(app) и затем также вызовите server.listen(port) и верните новый экземпляр сервера.


Когда вы делаете это:

https.createServer(function (req, res) {
  res.writeHead(200, {'Content-Type': 'text/plain'});
  res.write('Hello World!');
  res.end();
}).listen(port);

, вы просто создаете свою собственную функцию, которая предназначена для обработки входящий http-запрос вместо того, чтобы использовать тот, который библиотека Express делает для вас.

...