'오류: EADDRINUSE 수신: 주소가 이미 사용 중입니다'를 해결하는 방법은 무엇입니까?

Olyu Eaddrinuse Susin Jusoga Imi Sayong Jung Ibnida Leul Haegyeolhaneun Bangbeob Eun Mueos Ibnikka



Node.js는 JavaScript 언어로 작성된 코드가 웹페이지나 로컬 서버에서 실행될 수 있도록 하는 런타임 환경입니다. 단일 스레드 환경이며 비동기 특성을 갖습니다. 서버를 통한 HTTP 요청 전송과 같은 다양한 작업을 수행하는 데 사용할 수 있는 다양한 내장 및 외부 모듈을 제공합니다. 다양한 로컬 서버와 상호 작용하는 동안 특정 가이드를 따르면 해결되는 여러 오류가 발생할 수 있습니다.

이 가이드에서는 아래 섹션을 다루면서 'listen EADDRINUSE: address 이미 사용 중'에 대한 가능한 수정 사항을 설명합니다.

'오류: EADDRINUSE 수신: 주소가 이미 사용 중입니다'를 해결하는 방법은 무엇입니까?

오류: EADDRINUSE 수신: 주소가 이미 사용 중입니다. ”는 둘 이상의 응용 프로그램이나 작업이 동일한 포트에 액세스하려고 할 때 발생합니다. 이 오류는 테스트 또는 개발 단계에서 발생할 수 있습니다. 예를 들어, 더 나은 이해를 위해 위에서 언급한 오류가 생성됩니다.







const 익스프레스오브제이 = 필요하다 ( '표현하다' )
const 데모앱 = 익스프레스오브제이 ( )
데모앱. 얻다 ( '/' , ( 요청, 입술 ) => {
입술. JSON ( {
이름 : 'CORS에 대한 Linuxhint 기사' ,
언어 : 'Node.js' ,
애플리케이션 : '코르스앱' ,
기원 : '크로스 오리진' ,
미들웨어 : '코르스'
} )
} )
데모앱. 듣다 ( 8080 , ( ) => {
콘솔. 통나무 ( `서버가 시작된 날짜 'http://localhost:8080/' ` )
} )
데모앱. 듣다 ( 8080 , ( ) => {
콘솔. 통나무 ( `서버가 시작된 날짜 'http://localhost:8080/' ` )
} )

위의 코드 조각은 다음과 같이 작동합니다.



  • 먼저 '를 가져옵니다. 표현하다 '모듈을 만들고 그 객체를 새 변수에 저장합니다.' 익스프레스오브제이 '. 이 변수를 생성자로 사용하여 '라는 이름의 새로운 Express 애플리케이션을 만듭니다. 데모앱 '.
  • 다음으로 '를 사용하여 GET 요청을 생성합니다. 얻다() ” 메서드를 사용하고 “를 전달하여 홈 페이지를 루트 핸들러로 설정합니다. / '를 첫 번째 매개변수로 사용합니다. 두 번째 매개변수는 '를 보내는 익명 콜백 함수입니다. JSON '를 활용하여 응답으로 데이터 JSON() ' 방법.
  • 그런 다음 해당 앱이 ' 8080 ' 두 번. 동일한 포트를 두 번 실행하면 언급된 오류가 발생합니다.

위 코드를 컴파일한 후 생성된 출력에는 '오류: EADDRINUSE 수신: 주소가 이미 사용 중입니다.' 오류 발생이 표시됩니다.







위 출력에서 ​​발생한 오류를 해결하기 위한 해결 방법은 주로 포트 번호를 변경하거나 실행 중인 프로세스 중 하나를 중지하는 두 가지입니다. 하지만 ' 오류: EADDRINUSE 수신: 주소가 이미 사용 중입니다. ” 오류. 실제 데모와 함께 이러한 솔루션은 다음과 같습니다.

해결 방법 1: 다른 포트에서 프로세스 실행

언급된 오류에 대해 가장 권장되는 해결책은 우리의 경우처럼 두 서비스가 실행되고 있는 포트 번호를 식별하는 것입니다. 8080 '. 그런 다음 서비스 하나를 무작위로 선택하고 포트 번호를 수정하여 서비스가 localhost에서 다른 포트 번호를 사용하여 수신하도록 합니다. 논의된 수정 후의 코드는 다음과 같습니다.



const 익스프레스오브제이 = 필요하다 ( '표현하다' )
const 데모앱 = 익스프레스오브제이 ( )
데모앱. 얻다 ( '/' , ( 요청, 입술 ) => {
입술. JSON ( {
이름 : 'CORS에 대한 Linuxhint 기사' ,
언어 : 'Node.js' ,
애플리케이션 : '코르스앱' ,
기원 : '크로스 오리진' ,
미들웨어 : '코르스'
} )
} )
데모앱. 듣다 ( 8080 , ( ) => {
콘솔. 통나무 ( `서버가 시작된 날짜 'http://localhost:8080/' ` )
} )
데모앱. 듣다 ( 3000 , ( ) => {
콘솔. 통나무 ( `서버가 시작되었습니다 'http://localhost:8080/' ` )
} )

위 코드를 실행한 후 생성된 출력은 이제 ' 오류: EADDRINUSE 수신: 주소가 이미 사용 중입니다. ' 문제가 해결되었습니다.

해결 방법 2: 동일한 포트에서 실행 중인 프로세스 중지

'listen EADDRINUSE: 이미 사용 중인 주소' 오류를 해결하는 또 다른 방법은 이미 사용 중인 특정 포트에서 실행 중인 프로세스를 중지하는 것입니다. 이렇게 하면 개발자가 지정된 작업을 수행하기 위해 액세스할 수 있는 포트가 유휴 상태가 됩니다. 이 중지 프로세스는 '라는 외부 모듈의 도움으로 수행됩니다. 킬 포트 '.

예를 들어, 지정된 포트 번호 '에서 실행 중인 모든 프로세스는 8080 '는 '를 사용하여 죽임을 당할 것입니다. 킬 포트 ” 모듈. 'kill-port' 모듈을 사용하는 방법에는 두 가지가 있으며 이러한 접근 방식은 모두 아래에 설명되어 있습니다.

방법 1: 설치 후 'kill-port' 모듈 사용

킬 포트 ” 모듈은 타사 외부 모듈이며 node.js 프로젝트 내에서 이 모듈을 사용하기 위한 것입니다. 이 모듈은 아래 명령을 실행하여 먼저 다운로드해야 합니다.

npm 설치 종료 - 포트 - g

아래 그림은 “의 설치가 완료된 모습입니다. 킬 포트 ” 변수:

설치 후 사용자는 필요한 포트 번호에 대한 서비스를 종료할 수 있습니다. 우리의 경우 포트 번호 ' 8080 ”는 아래에 명시된 명령을 통해 종료됩니다.

죽이다 - 포트 -- 포트 8080

아래 출력은 포트 '에 대한 모든 서비스가 확인됩니다. 8080 '가 사망했습니다:

방법 2: 설치하지 않고 'kill-port' 모듈 사용

킬 포트 ” 모듈을 활용하여 별도의 설치 과정 없이 모듈을 사용할 수 있습니다. npx ” 패키지 러너. 예를 들어, “ 킬 포트 '모듈은 아래에 설명된 'npx' 패키지 실행기 명령을 사용하여 지정된 두 개의 포트를 종료하는 데 사용되고 있습니다.

npx 죽이기 - 포트 8080 9000

아래 출력은 지정된 포트에 대한 서비스를 보여줍니다. 9000 ' 그리고 ' 8080 '가 사망했습니다:

보너스 팁: 'kill-port' 모듈 제거

'를 제거하려면 킬 포트 ” 모듈은 시스템에서 전역적으로 아래 명령을 실행합니다.

npm 제거 종료 - 포트 - g

해결 방법 3: Windows에서 Node.js 서비스 종료

'오류: EADDRINUSE 수신: 주소가 이미 사용 중입니다'라는 메시지가 여전히 지속되면 실행 중인 모든 항목을 종료합니다. node.js ” GUI 또는 CLI 접근 방식을 사용하는 서비스입니다.

CLI 접근 방식 사용

누르세요 ' 창문 ' 버튼을 눌러 검색창을 열고 ' 명령 ” 생성된 결과에서 검색창 내부에 표시됩니다. 그런 다음 “ 명령 프롬프트 ” 응용 프로그램을 선택하고 “ 관리자로 실행 ' 버튼:

옵션을 선택하면 제어 프롬프트의 새 창이 나타납니다. 백그라운드에서 현재 실행 중인 'node.js' 서비스를 종료하려면 아래 명령을 실행하십시오.

태스크킬 / 에프 / IM 노드. exe

생성된 출력은 'node.js' 서비스가 종료되었음을 보여줍니다.

GUI 접근 방식 사용

시스템에서 실행 중인 node.js 서비스를 종료하려면 ' 작업 관리자 '를 눌러 ' Ctrl + Shift + Esc ” 키를 즉시 누릅니다. '작업 관리자'를 연 후 ' 세부 '를 입력하고 '를 선택합니다. node.exe ” 서비스를 선택하고 “ 작업 종료 ” 버튼은 아래와 같이 오른쪽 하단에 있습니다.

이것이 Node.js의 '오류: EADDRINUSE 수신: 주소가 이미 사용 중입니다'를 해결하는 것입니다.

결론

'오류: EADDRINUSE 수신: 이미 사용 중인 주소'는 둘 이상의 서비스가 동시에 단일 포트를 사용하려고 시도할 때 발생합니다. 이 문제를 해결하려면 사용자는 다른 포트 번호를 사용하거나 '를 사용하여 지정된 포트 번호에서 이미 실행 중인 서비스를 종료해야 합니다. 킬 포트 ” 모듈. 오류가 여전히 해결되지 않으면 실행 중인 모든 항목을 종료합니다. node.js ” 작업 관리자에서 서비스를 실행하고 응용 프로그램을 다시 시작하세요. 이 가이드에서는 '오류: EADDRINUSE 수신: 주소가 이미 사용 중입니다' 문제를 해결하기 위한 가능한 솔루션을 설명했습니다.