lambda和koa服务器承诺处理

时间:2019-09-24 08:45:03

标签: lambda serverless koa

我一直在尝试许多方法来从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以及我处理诺言的方式。

enter image description here

0 个答案:

没有答案