Google App Engine部署Node.js应用找不到/workspace/server.js模块怎么办
问题原因
- Google App Engine Node.js 运行环境的启动入口存在固定优先级:优先读取
app.yaml中的entrypoint配置,其次读取package.json中的scripts.start配置,若两项均未配置,会默认执行node server.js启动应用,这是触发报错的核心原因 - 你使用的官方 Express Hello World 示例默认入口文件为
app.js,未配置适配 GAE 要求的启动参数,因此触发了默认启动逻辑,找不到对应的server.js文件
修复方案
以下三种方案任选其一即可:
方案1:配置 package.json 启动脚本(推荐)
在项目根目录的 package.json 文件中添加 start 脚本,指向你的实际入口文件,配置示例:
{ "name": "express-demo", "version": "1.0.0", "scripts": { "start": "node app.js" }, "dependencies": { "express": "^4.x" } }
方案2:在 app.yaml 中指定启动入口
直接在项目的 app.yaml 配置文件中添加 entrypoint 字段,明确指定启动命令:
runtime: nodejs16 # 替换为你实际使用的Node.js版本 entrypoint: node app.js
方案3:适配默认入口规则
直接将你的 Express 入口文件从 app.js 重命名为 server.js,无需修改其他配置即可适配 GAE 的默认启动逻辑。
修改完成后重新执行 gcloud app deploy 部署即可解决问题。
内容的提问来源于stack exchange,提问作者Nick Machiels
相关产品推荐
相关产品推荐

