AWS Serverless Lambda + Angular - TypeError:express 不是函数

2024-05-07

该应用程序在 localhost:4200 中运行良好。但是,当我通过无服务器 Lambda 迁移到 AWS 时,我在 cloudwatch 日志中收到此错误。我想正因为如此我得到了500 {"message": "Internal server error"}当我访问该网址时

我对AWS一无所知。只是尝试在 AWS 中运行一个 hello world 应用程序。关注以下 YouTube 和博客https://www.youtube.com/watch?v=l3t8cjykf00 https://www.youtube.com/watch?v=l3t8cjykf00

https://www.youtube.com/watch?v=N-6LtzJezsk https://www.youtube.com/watch?v=N-6LtzJezsk

https://www.twilio.com/blog/angular-universal-javascript-node-js-aws-lambda https://www.twilio.com/blog/angular-universal-javascript-node-js-aws-lambda

2020-03-26T22:48:18.030Z    undefined   ERROR   Uncaught Exception  
{
    "errorType": "TypeError",
    "errorMessage": "express is not a function",
    "stack": [
        "TypeError: express is not a function",
        "    at Object.<anonymous> (/var/task/dist/server.js:95287:15)",
        "    at __webpack_require__ (/var/task/dist/server.js:21:30)",
        "    at module.exports.extendStatics (/var/task/dist/server.js:85:18)",
        "    at Object.<anonymous> (/var/task/dist/server.js:88:10)",
        "    at Module._compile (internal/modules/cjs/loader.js:778:30)",
        "    at Object.Module._extensions..js (internal/modules/cjs/loader.js:789:10)",
        "    at Module.load (internal/modules/cjs/loader.js:653:32)",
        "    at tryModuleLoad (internal/modules/cjs/loader.js:593:12)",
        "    at Function.Module._load (internal/modules/cjs/loader.js:585:3)",
        "    at Module.require (internal/modules/cjs/loader.js:692:17)"
    ]
}

无服务器.yml

# generated by @ng-toolkit/serverless
service: app2

plugins:
  - serverless-apigw-binary
  - serverless-api-compression

provider:
  name: aws
  runtime: nodejs10.x
  memorySize: 192
  timeout: 10
  stage: production
  region: eu-central-1

package:
  exclude:
   - src/**
   - node_modules/**
   - firebug-lite/**
   - e2e/**
   - coverage/**
   - '!node_modules/aws-serverless-express/**'
   - '!node_modules/binary-case/**'
   - '!node_modules/type-is/**'
   - '!node_modules/media-typer/**'
   - '!node_modules/mime-types/**'
   - '!node_modules/mime-db/**'

custom:
  contentCompression: 1024
  apigwBinary:
    types:
      - '*/*'

functions:
  api:
    handler: lambda.universal
    events:
      - http: ANY {proxy+}
      - http: ANY /

包.json

"dependencies": {
    "@angular/animations": "~9.1.0",
    "@angular/common": "~9.1.0",
    "@angular/compiler": "~9.1.0",
    "@angular/core": "~9.1.0",
    "@angular/forms": "~9.1.0",
    "@angular/platform-browser": "~9.1.0",
    "@angular/platform-browser-dynamic": "~9.1.0",
    "@angular/platform-server": "~9.1.0",
    "@angular/router": "~9.1.0",
    "@babel/compat-data": "^7.8.0",
    "@ng-toolkit/serverless": "^8.1.0",
    "@ng-toolkit/universal": "^7.1.2",
    "@nguniversal/common": "0.0.0",
    "@nguniversal/express-engine": "0.0.0",
    "@nguniversal/module-map-ngfactory-loader": "0.0.0",
    "aws-serverless-express": "^3.3.6",
    "cors": "^2.8.5",
    "domino": "^2.1.3",
    "express": "^4.17.1",
    "react-scripts": "3.4.1",
    "rxjs": "~6.5.4",
    "serverless-api-compression": "^1.0.1",
    "tslib": "^1.9.0",
    "zone.js": "~0.10.3"
  },
  "devDependencies": {
    "@angular-devkit/build-angular": "^0.901.0",
    "@angular/cli": "~9.1.0",
    "@angular/compiler-cli": "~9.1.0",
    "@angular/language-service": "~9.1.0",
    "@types/jasmine": "~3.3.8",
    "@types/jasminewd2": "~2.0.3",
    "@types/node": "~8.9.4",
    "codelyzer": "^5.0.0",
    "jasmine-core": "~3.4.0",
    "jasmine-spec-reporter": "~4.2.1",
    "karma": "~4.1.0",
    "karma-chrome-launcher": "~2.2.0",
    "karma-coverage-istanbul-reporter": "~2.0.1",
    "karma-jasmine": "~2.0.1",
    "karma-jasmine-html-reporter": "^1.4.0",
    "opencollective": "^1.0.3",
    "protractor": "~5.4.0",
    "serverless": "^1.60.0",
    "serverless-apigw-binary": "^0.4.4",
    "ts-loader": "^6.2.1",
    "ts-node": "~7.0.0",
    "tslint": "~5.15.0",
    "typescript": "~3.8.3",
    "webpack-cli": "^3.3.10"
  },
  "resolutions": {
    "@babel/preset-env": "^7.8.0"
  }

所以我很难让它发挥作用。我没有具体的东西来解决这个问题,但经过一番搜索后偶然发现了这个 github 存储库。我下载了它,无服务器 lambda 部署工作正常。该示例使用角度 8,但希望角度 9 也相同。

Angular 无服务器入门存储库 https://github.com/sahilpurav/ngx-serverless-starter

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

AWS Serverless Lambda + Angular - TypeError:express 不是函数 的相关文章

随机推荐

  • 创建超过 2 组的高图表密度

    我尝试用两个以上的组创建高图表密度 我找到了一种手动将它们逐一添加的方法 但必须有更好的方法来处理组 示例 我想创建一个类似于下面的ggplot图表的highchart 而不需要将它们一一添加 有什么办法可以做到吗 d f lt data
  • 无法使用 Android 版 VLC 设置字幕

    启动 Android 版 VLC 的 VideoPlayerActivity 时 我在设置字幕位置时遇到问题 我的目标是 API 27 并使用 FileProvider 来允许访问文件 根据文档here https wiki videola
  • 从多页表单中获取活动控件名称和值

    我已经在网上寻找解决方案几个月了 但没有成功 我创建于Excel 2010 a UserForm与多页 我正在尝试编写一个函数来获取activecontrol名称和值 到目前为止 我已经成功使用此命令获取了控件的名称Me MultiPage
  • pyPDF通过django合并并显示为httpresponse

    我在合并 pyPDF 逻辑以将两个 pdf 文件合并到我的 django 站点时遇到问题 我编写了在本地服务器上的 python 文件中运行时用于合并文件的代码 但我需要明确识别要合并的文件 from pyPdf import PdfFil
  • 如何通过VBA刷新所有单元格

    有没有办法触发 从VBA Excel要求它重新评估所有Excel单元格 谢谢 The 计算 http msdn microsoft com en us library aa223802 28office 11 29 aspx方法可以重新计算
  • 最初从位图泄漏未引用的 byte[] 但被回收()导致内存泄漏(直到活动停止)

    我有位图内存泄漏导致内存不足 我在 Android 5 0 三星 S5 上运行了测试 我已经使用 Android Studio 1 5 1 2 0 0 Preview 7 调查了这个问题 HPROF 内存转储显示有多个 byte 与我暂时使
  • XTS to.weekly 返回不同的每周端点

    我有一个问题endpoints 函数于xts 还有to weekly函数 使用端点 有时返回星期五作为周末 有时返回星期一 我的数据集叫做sp2 gt head sp2 1 2012 01 09 1 78 2012 01 10 1 78 2
  • 将角半径应用于 Storyboard 内的特定 UIView 角并不适用于所有角

    我为此创建了一个自定义类 但它仅适用于左上角 不适用于其他位置 IBDesignable public class RoundedView UIView IBInspectable public var topLeft Bool false
  • 在 python 中使用 numpy.linalg.eig 后对特征值和关联的特征向量进行排序

    我使用 numpy linalg eig 来获取特征值和特征向量的列表 A someMatrixArray from numpy linalg import eig as eigenValuesAndVectors solution eig
  • 如何使用 Javascript 弹出一个新窗口,其 html 与其父窗口几乎相同

    我想从单个页面创建多个版本的适合打印的页面 我正在考虑这样做 在原始页面上放置几个按钮 然后单击一个按钮将弹出一个新窗口 其html与其父窗口相同 但进行了一些修改 例如 将某些DIV的显示属性设置为没有任何 可以使用javascript来
  • 比较通用列表和数组

    为什么 generic list 比 array 慢 通用列表比数组稍慢 但在大多数情况下您不会注意到 主要与稍微复杂的查找有关 据说 List 在幕后 使用数组 但不能保证以与数组相同的方式将节点保留在相邻内存中 然而 我早在 2005
  • 广告过滤服务器端[关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我正在开发一个 Web 应用程序 在其中显示来自其他网站的 HTML 在显示最终版本之前 我想去掉广告 关于如何实现这一目标有什么想法
  • 在哪里可以找到 Qt 的 dll 的 pdb 文件?

    我正在调试 Qt 应用程序 在哪里可以找到 Qt 的调试 dll 我在windows上使用的是vs2010 它说它需要 Qt 中的许多 dll 的 pdb 文件 从 Qt 5 9 开始 与 Windows 发行版相对应的 PDB 可作为单独
  • 如何在派生类中引用基类的属性?

    我可以做这个 class Blah2 atttr 5 aa atttr ob Blah2 print ob aa http ideone com pKxMc2 http ideone com pKxMc2 所以我想我也可以这样做 class
  • UIView 被状态栏剪切直到自动旋转

    我创建了一个多视图应用程序 它使用多个控制器来显示和控制视图 我遇到的问题是 当模拟器最初加载视图时 标题部分被屏幕顶部的栏覆盖 并且底部的工具栏没有接触屏幕的底部 我使用界面生成器大小属性来控制 iPhone 旋转时的视图 效果非常好 旋
  • 如何让 minimongo.js 在浏览器中运行?

    The minimongo 的 github 演示 https github com mWater minimongo陈述为 客户端 mongo 数据库 通过 http 与服务器同步 还有一个还有一个minimongo 独立 https g
  • Clang 格式将 if 语句体拆分为多行

    我有以下 cpp 文件 void call long function name bool void sf bool int main bool test true if test call function name test if te
  • 具有多个等待组的管道中通道范围内的死锁

    我正在练习通过同时将计算分为 100 组来计算阶乘的挑战 我解决了 WaitGroups 上的很多问题 但仍然处于calculateFactorial函数我在通道部分的范围上陷入了僵局 希望有人能指出这个问题 谢谢 package main
  • 使用链接进行电子邮件验证是一个坏主意

    在我的注册过程中 用户注册后 他们会收到通过电子邮件发送的验证链接 如果他们单击该链接 那么他们的帐户才会得到验证 但这种验证方法对于机器人来说是不是太容易了 我认为电子邮件可以由机器人创建 但可以肯定的是 如果验证只是单击链接 那么它也可
  • AWS Serverless Lambda + Angular - TypeError:express 不是函数

    该应用程序在 localhost 4200 中运行良好 但是 当我通过无服务器 Lambda 迁移到 AWS 时 我在 cloudwatch 日志中收到此错误 我想正因为如此我得到了500 message Internal server e