如何在 aws 上发布 nodeJS 应用程序?
Posted
技术标签:
【中文标题】如何在 aws 上发布 nodeJS 应用程序?【英文标题】:How can I publish a nodJS app on aws? 【发布时间】:2018-01-01 20:26:57 【问题描述】:我正在使用 aws 云的免费层版本,并且在加载 nodeJs 应用程序时遇到了一些问题。我试图遵循 aws 的文档,但不幸的是它没有工作。我从服务中选择 Elastic BeanStalk,然后创建一个新应用程序。我当然选择 nodeJs 作为预配置平台。我用我的应用程序制作了一个 zip,我真的很注意,在 package.json 和 app.js 之上没有任何父文件夹。如上图所示,我有一个“public”文件夹,其中包含其他文件夹(css、img、javascript 代码)。当我尝试上传项目时,我收到一条错误消息。 “未能找到 package.json。Node.js 可能无法启动。验证 package.json 是否有效或将代码放在名为 server.js 或 app.js 的文件中。”在项目视图中,我的健康状态为“降级”,还有一个错误代码:“i-045ac359227e3a9ae”严重 我在这台服务器上尝试了许多 php 项目,一切正常,但我无法使其与 Node.js 一起使用。你能帮帮我吗?
package.json:
"name": "kutyapplikacio",
"version": "1.0.0",
"description": "Egy alkalmazás kutyáknak és gazdáiknak",
"main": "server.js",
"scripts":
"test": "test",
"start": "node server.js"
,
"author": "sethdevelop",
"license": "ISC",
"dependencies":
"body-parser": "^1.17.2",
"express": "^4.15.3",
"express-mailer": "^0.3.1",
"express-mysql": "0.0.1",
"express-validator": "^3.2.0",
"mysql": "^2.13.0",
"nodemailer": "^4.0.1",
"nodemailer-smtp-transport": "^2.7.4"
【问题讨论】:
package.json
里面是什么?它也可能是您用于压缩文件的方法,当您压缩时,您可能会将您的东西嵌套在它们当前的文件夹中,因此当弹性豆茎解压缩时,除了包含您的东西的文件夹之外,它解压缩的目录中没有任何内容。
我更新了帖子。压缩方法:我把文件标记出来,右键,压缩,添加到压缩文件
将 ZIP 文件的结构与 github.com/awslabs/eb-node-express-sample/releases/download/… 的 AWS 示例进行比较。
我上传了这个示例项目,它可以工作。所以它必须是我的应用程序结构
这就是我在没有beantalk的情况下手动配置EC2实例medium.com/@adhasmana/…
【参考方案1】:
您写的错误消息是:“无法找到 package.json。Node.js 可能无法启动。验证 package.json 是否有效或将代码放在名为 server.js 或 app.js 的文件中。”
从文件夹中我只看到你有 app.js 文件。
并且在你的 package.json 中有 server.js:
"main": "server.js",
"scripts":
"test": "test",
"start": "node server.js"
也许您应该将 server.js 更改为 app.js ?
更新
由于您提到它们具有相同的名称: 难道是你压缩文件夹而不是压缩文件? 这里讨论了同样的问题: https://forums.aws.amazon.com/message.jspa?messageID=477087 https://forums.aws.amazon.com/thread.jspa?threadID=130140
【讨论】:
我认为名字可能是问题,所以我重命名了它,忘记了。但是当我上传 zip 时,所有东西都有正确的名称。 您能告诉我们您正在阅读哪份文件吗?喜欢这个:docs.aws.amazon.com/elasticbeanstalk/latest/dg/…? 我完全遵循了这个文档。无论我做什么,当我尝试启动应用程序链接时,都会收到 502 错误网关。 我试着认真地制作 zip 文件。我指定文件,制作 zip 文件,没有任何父文件夹,我确定。以上是关于如何在 aws 上发布 nodeJS 应用程序?的主要内容,如果未能解决你的问题,请参考以下文章
如何在 NodeJS 上验证 AWS Cognito 访问令牌
如何使用 NodeJS 在 AWS Lambda 上运行 PhantomJS
如何将 React + NodeJS Express 应用程序部署到 AWS?