【问题标题】:Error on npm start on Azure - EADDRNOTAVAILAzure 上的 npm start 错误 - EADDRNOTAVAIL
【发布时间】:2020-07-28 14:45:11
【问题描述】:

我正在尝试在 Azure 上运行 nodejs 应用程序(在 Heroku 上运行得非常好)。

在应用上运行 npm start 后,出现以下错误:

Error: connect EADDRNOTAVAIL 127.0.0.1 - Local (0.0.0.0:56256)
    at internalConnect (net.js:907:16)
    at defaultTriggerAsyncIdScope (internal/async_hooks.js:301:12)
    at net.js:998:9
    at processTicksAndRejections (internal/process/task_queues.js:75:11) {
  errno: 'EADDRNOTAVAIL',
  code: 'EADDRNOTAVAIL',
  syscall: 'connect',
  address: '127.0.0.1'
}

我尝试设置各种空闲端口,但无论如何,我都会收到此错误。

【问题讨论】:

  • 从你的报错信息来看,你的问题出在端口冲突上。一般只要在本地正常运行,用git部署,就不会出现问题。推荐使用Linux运行环境。
  • 它在 Linux 网络应用程序上运行
  • 通过git部署的时候,可以在Action中找到error/logs。

标签: node.js azure


【解决方案1】:

更新

我知道你当前的程序在Heroku中运行正常,在本地运行也很好。

但是我想告诉你的是,在azure webapp中,不需要执行npm start命令来启动webapp。通过部署后,您可以在门户中设置启动命令来启动您的应用程序。对于一般的nodejs项目,启动命令是npx serve -s。

所以你说执行 npm start 会产生错误。如果在kudu中执行这个启动命令,是不合适的。

如果本地运行时出现错误,如connect EADDRNOTAVAIL 127.0.0.1-Local (0.0.0.0:56256),建议使用netstat -ano|findstr "56256"查看是哪个进程使用了​​该端口并处理。

私人

您需要确保在您的项目中使用process.env.PORT || 3000。而且你需要知道,azure webapp 中的端口只支持80 和443。所以在你的项目中,所以在你的代码中,只能有一个PORT 值。部署后,443 和 80 将工作。

您可以在HeroKu 上完美运行您的应用程序。所以我建议你把你的代码上传到github。

那你可以deploy your webapp by git。你的问题将得到解决。如果部署时也有错误,you can check the error in Action on git。

【讨论】:

  • 1.这是应用程序中设置的内容 2. 我非常了解端口的工作原理 3. 代码在 GitHub 中,并通过部署中心从同一个代码库部署到 Heroku 和 Azure Web 应用程序。
  • @Andy 我已经更新了我的答案。你的 npm start 命令在哪里执行?
猜你喜欢
  • 2017-04-06
  • 1970-01-01
  • 2021-04-19
  • 2016-02-04
  • 1970-01-01
  • 2014-11-29
  • 1970-01-01
  • 2017-07-17
  • 2016-10-30
相关资源
最近更新 更多