我正在尝试使用serverless部署一个带有ejs视图引擎的express应用程序作为AWS Lambda函数,我对无服务器框架非常陌生,需要一些指导。
问题:部署成功,但我从亚马逊网络服务端点获取{"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任何关于我的代码/配置出了什么问题或者如何以正确的方式去做的指南,我将不胜感激
发布于 2021-10-29 03:30:32
确保您有正确的缓存选项来为您的静态包提供服务;以下是一个通用示例:
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));https://stackoverflow.com/questions/62688449
复制相似问题