Something is already running on port 3000이 포트가 사용되기 때문만은 아닙니다.
추적 코드 검색:
로컬 서비스가 잘못 보고되면 들어갑니다
listen(port, 'localhost', err => {
if (err) {
console.log(' 2',err)
return handleError(err)
}
// 4. check current ip
listen(port, address.ip(), (err, realPort) => {
if (err) {
console.log(' 1')
return handleError(err)
}
callback(null, realPort)
})
})
function handleError() {
port++
if (port >= maxPort) {
debug(
'port: %s >= maxPort: %s, give up and use random port',
port,
maxPort
)
port = 0
maxPort = 0
}
tryListen(host, port, maxPort, callback)
}
이 함수port에 한 번 들어가지 않으면 이err에 누적되는 이유는 host가 연결되지 않았기 때문입니다.
err 정보를 출력하는 것은 다음과 같습니다.
Error: getaddrinfo ENOTFOUND localhost at errnoException (dns.js:28:10) at GetAddrInfoReqWrap.onlookup [as oncomplete] (dns.js:73:26) code: 'ENOTFOUND', errno: 'ENOTFOUND', syscall: 'getaddrinfo', hostname: 'localhost'
번역 후 대략적인 뜻은 귀속host가 없으면 dns 해석을 할 수 없다는 것이다
호출 대비 중 문제 발생
devserver 호출 함수
function choosePort(host, defaultPort) {
return detect(defaultPort, host).then(
port =>
new Promise(resolve => {
// port resolve(port) port ( host 127.0.0.1)
if (port === defaultPort) {
return resolve(port);
}
const message =
process.platform !== 'win32' && defaultPort < 1024 && !isRoot()
? `Admin permissions are required to run a server on a port below 1024.`
: `Something is already running on port ${defaultPort}.`;
if (isInteractive) {
// clearConsole();
const existingProcess = getProcessForPort(defaultPort);
const question = {
type: 'confirm',
name: 'shouldChangePort',
message:
chalk.yellow(
message +
`${existingProcess ? ` Probably:
${existingProcess}` : ''}`
) + '
Would you like to run the app on another port instead?',
default: true,
};
inquirer.prompt(question).then(answer => {
if (answer.shouldChangePort) {
resolve(port);
} else {
resolve(null);
}
});
} else {
console.log(chalk.red(message));
resolve(null);
}
}),
err => {
throw new Error(
chalk.red(`Could not find an open port at ${chalk.bold(host)}.`) +
'
' +
('Network error message: ' + err.message || err) +
'
'
);
}
);
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.