프로그래밍 언어/HTML,CSS,JS

Express.js-app.listen VS server.listen

Rateye 2021. 9. 28. 11:19
728x90
반응형
질문 : Express.js-app.listen 대 server.listen

이것은 매우 기본적인 질문 일 수 있지만 이해가되지 않습니다. Express.js를 사용하여 앱을 만드는 것과 포트 1234에서 수신하는 앱을 시작하는 것의 차이점은 무엇입니까? 예를 들면 다음과 같습니다.

var express = require('express');
var app = express();

//app.configure, app.use etc

app.listen(1234);

http 서버 추가 :

var express = require('express');
var http = require('http');

var app = express();
var server = http.createServer(app);

//app.configure, app.use etc

server.listen(1234);

차이점이 뭐야?
http://localhost:1234 이동하면 동일한 출력을 얻습니다.

답변

두 번째 양식 (익스프레스가 사용자를 대신하여 HTTP 서버를 생성하는 대신 HTTP 서버를 직접 생성)은 HTTP 서버를 재사용하려는 경우에 유용합니다 (예 : 동일한 HTTP 서버 인스턴스 내에서 socket.io

var express = require('express');
var app     = express();
var server  = require('http').createServer(app);
var io      = require('socket.io').listen(server);
...
server.listen(1234);

그러나 app.listen() 은 HTTP 서버 인스턴스도 반환하므로 약간의 재 작성으로 HTTP 서버를 직접 만들지 않고도 비슷한 작업을 수행 할 수 있습니다.

var express   = require('express');
var app       = express();

// app.use/routes/etc...

var server    = app.listen(3033);
var io        = require('socket.io').listen(server);

io.sockets.on('connection', function (socket) {
  ...
  });
  
출처 : https://stackoverflow.com/questions/17696801/express-js-app-listen-vs-server-listen
728x90
반응형