AWS Lambda在Node中完成了callback()函数

时间:2017-01-30 05:53:46

标签: node.js amazon-web-services aws-lambda aws-sdk-nodejs

Lambda中的microservice-http-endpoint启动程序函数包含以下代码以结束该函数:

const done = (err, res) => callback(null, {
    statusCode: err ? '400' : '200',
    body: err ? err.message : JSON.stringify(res),
    headers: {
        'Content-Type': 'application/json',
    },
});

在编写了一个只有几个端点的Lambda API之后,我发现自己在所有函数中都使用了相同的代码。我的第一直觉是把它放到一个模块中以使代码更加DRY但如果我这样做,callback()函数将超出范围。

我只从我的函数返回JSON,所以这将是我特定用例中唯一可能的Content-Type。

人们如何处理这个问题?是否有一种实用(优雅)的方式以某种方式封装此代码?或者也许是更好的选择?

1 个答案:

答案 0 :(得分:1)

只需嵌套函数:

const regularize = (awsCallback) => (err, res) => {
  awsCallback(...perYourAboveCode(err, res))
};

处理程序可能如下所示:

const myHandler = (event, context, awsCallback) => {
  const callback = regularize(awsCallback);
};