【问题标题】:Express with ejs serverless host with AWS Lambda使用 AWS Lambda 使用 ejs 无服务器主机进行 Express
【发布时间】:2020-10-22 14:04:58
【问题描述】:

我正在尝试使用无服务器将具有 ejs 视图引擎的快速应用程序部署为 AWS Lambda 函数 我真的是无服务器框架的新手,需要一些指导。

问题:部署成功,但我从 AWS 端点获得{"message": "Internal server error"}

这是我的快递server.js

const serverless = require('serverless-http');
const Dotenv = require('dotenv').config();
const express = require('express');
const bodyParser = require('body-parser');

const app = express();

app.use(bodyParser.urlencoded({ extended: true }));
app.use(express.static('public'));
app.set('view engine', 'ejs');

app.get('/', function (req, res) {
  res.render('index',{data: {name: user}, error: null});
}

module.exports.handler = serverless(app);

还有serverless.yml

org: dk013
app: wforecast
service: wforecast
provider:
  name: aws
  runtime: nodejs12.x
  stage: dev
  region: us-east-1
functions:
  app:
    handler: app.handler
    events: 
      - http: ANY /
      - http: 'ANY {proxy+}'
plugins:
  - serverless-offline

感谢任何关于我的代码/配置有什么问题或如何以正确方式进行操作的指南

【问题讨论】:

  • 你检查过cloudwatch上的日志吗??
  • 开启API日志并查看cloudwatch
  • 不,我没有。你是对的......我应该回来。如果我需要帮助我在那里找到的东西。正如我之前所说,我是 AWS 和无服务器框架的新手。但这是一个真正的菜鸟错误。
  • 没有这样的东西。无服务器是如此新,每个人都是菜鸟。别担心
  • 我想到了一些事情——你可能需要明确地要求ejs——否则我看不出它将如何打包在 lambda 中。此外,public 静态目录可能会导致问题,因为没有匹配的目录结构。只是猜测。

标签: node.js amazon-web-services express ejs serverless


【解决方案1】:

确保您有正确的缓存选项来为您提供静态包;这是一个一般的例子:

const cacheOptions = {
    etag: true,
    lastModified: true,
    setHeaders: (res, path) => {
      const hashRegExp = new RegExp('\\.[0-9a-zA-z]{8}\\.');
      if (path.endsWith('.html')) {
        res.setHeader('Cache-Control', 'private, no-cache, no-store, must-revalidate');
      } else if (hashRegExp.test(path)) {
        res.setHeader('Cache-Control', 'max-age=31536000');
      }
    }
  }
app.use(express.static(path.join(__dirname, './build'), cacheOptions));

【讨论】:

    猜你喜欢
    • 2021-06-03
    • 2019-02-24
    • 2018-08-06
    • 2019-04-17
    • 1970-01-01
    • 1970-01-01
    • 2017-02-17
    • 2018-02-19
    • 2018-11-20
    相关资源
    最近更新 更多