我一直在尝试许多方法来从lambda返回正确的响应,但是这些方法都不起作用,最终我得到了“空”响应。
const Koa = require('koa');
const Router = require('koa-router');
const StaticServer = require('koa-static-server');
const BodyParser = require('koa-bodyparser');
const SSLify = require('koa-sslify');
const Ejs = require('koa-ejs');
const Config = require("Server/Config");
const PageRoutes_1 = require("Server/PageRoutes");
const app = new Koa();
exports.router = new Router();
app.use(BodyParser());
app.use(StaticServer({ rootDir: 'assets', rootPath: '/assets', last: true }));
app.use(StaticServer({ rootDir: 'dist/statics', rootPath: '/statics', last: true }));
Ejs(app, ({
root: path.join(__dirname, '../ejs'),
cache: Config.IS_PRODUCTION,
layout: 'template',
viewExt: 'ejs',
debug: true,
}));
PageRoutes_1.default(exports.router);
app.use(exports.router.routes());
app.use(exports.router.allowedMethods());
module.exports.handler = app;
和我的index.js:
const serverless = require('serverless-http');
const app = require('MainServer');
const my_handler = serverless(app);
module.exports.handler = function(event, context, callback) {
const response = my_handler(event, context);
response.then(
(data) => {
console.log('promise resolved');
console.log(data);
callback(null, data);
},
(err) => {
console.log('ERROR');
console.log(err);
callback(err);
}
);
}
这是我尝试过的事情之一:我什至看不到日志
module.exports.handler = async (event, context) => {
console.log('Im here')
try {
const result = await my_handler(event, context);
console.log('Here33');
console.log(result)
return result;
}
catch (err) {
console.log('Here4')
console.log(err);
return err;
}
}
我正在通过API网关进行连接,但是测试lambda也会输出“ null”,因此api网关会给出{"message": "Internal server error"}
,但我认为主要问题在于lambda以及我处理诺言的方式。