簡體   English   中英

Express with ejs serverless host with AWS Lambda

[英]Express with ejs serverless host with AWS Lambda

我正在嘗試使用無服務器部署一個帶有 ejs 視圖引擎的快速應用程序作為 AWS Lambda function 我對無服務器框架真的很陌生,需要一些指導。

問題:部署成功,但我從 AWS 端點收到{"message": "Internal server error"}

這是我的 Express 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

任何關於我的代碼/配置有什么問題或如何以正確方式做的指導都值得贊賞

確保您有正確的緩存選項來為您提供 static 捆綁包; 這是一個一般的例子:

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));

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM