使用无服务器部署 express 时出现内部服务器错误
internal server error with when deploying express with serverless
**[没有什么比愚蠢或无用的问题更重要的是我们都在这里学习]**我遇到了一个我几天都无法解决的问题,我正在尝试将我的 express 应用程序部署到aws 使用无服务器,但是当我尝试访问端点时收到此错误
{"message": "Internal server error"}
我实在想不通问题也看了其他类似的问题但是都没有用
这是我的 serverless.yml
service: my-express-application
provider:
name: aws
runtime: nodejs14.x
stage: dev
region: us-east-1
functions:
app:
handler: app.handler
events:
- http: ANY /
- http: 'ANY /{proxy+}'
这是我的 app.js
const keys = require("./config/keys");
const activitiesRoutes = require("./routes/activity");
const app = express();
const bodyParser = require("body-parser");
const router = express.Router();
const AWS = require("aws-sdk");
AWS.config.update({
region: "us-east-1",
});
var docClient = new AWS.DynamoDB.DocumentClient();
// set view engine
app.set("view engine", "ejs");
// set up session cookies
app.use(
cookieSession({
maxAge: 24 * 60 * 60 * 1000,
keys: [keys.session.cookieKey],
})
);
// initialize passport
app.use(passport.initialize());
app.use(passport.session());
// connect to mongodb
mongoose.connect(keys.mongodb.dbURI, () => {
console.log("connected to mongodb");
});
// set up routes
/
app.listen(3000, () => {
console.log("app now listening for requests on port 3000");
});
module.exports = serverless(app);
我看到一个问题,您没有正确导出 handler
方法。更改此行
module.exports = serverless(app);
对此:
module.exports.handler = serverless(app);
(根据 this。)
**[没有什么比愚蠢或无用的问题更重要的是我们都在这里学习]**我遇到了一个我几天都无法解决的问题,我正在尝试将我的 express 应用程序部署到aws 使用无服务器,但是当我尝试访问端点时收到此错误
{"message": "Internal server error"}
我实在想不通问题也看了其他类似的问题但是都没有用
这是我的 serverless.yml
service: my-express-application
provider:
name: aws
runtime: nodejs14.x
stage: dev
region: us-east-1
functions:
app:
handler: app.handler
events:
- http: ANY /
- http: 'ANY /{proxy+}'
这是我的 app.js
const keys = require("./config/keys");
const activitiesRoutes = require("./routes/activity");
const app = express();
const bodyParser = require("body-parser");
const router = express.Router();
const AWS = require("aws-sdk");
AWS.config.update({
region: "us-east-1",
});
var docClient = new AWS.DynamoDB.DocumentClient();
// set view engine
app.set("view engine", "ejs");
// set up session cookies
app.use(
cookieSession({
maxAge: 24 * 60 * 60 * 1000,
keys: [keys.session.cookieKey],
})
);
// initialize passport
app.use(passport.initialize());
app.use(passport.session());
// connect to mongodb
mongoose.connect(keys.mongodb.dbURI, () => {
console.log("connected to mongodb");
});
// set up routes
/
app.listen(3000, () => {
console.log("app now listening for requests on port 3000");
});
module.exports = serverless(app);
我看到一个问题,您没有正确导出 handler
方法。更改此行
module.exports = serverless(app);
对此:
module.exports.handler = serverless(app);
(根据 this。)