0

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 后,我发现自己在所有函数中都使用了相同的代码。我的第一直觉是将它放入一个模块中以使代码更加干燥,但如果我这样做,该callback()函数将超出范围。

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

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

4

1 回答 1

1

只需嵌套函数:

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

处理程序可能如下所示:

const myHandler = (event, context, awsCallback) => {
  const callback = regularize(awsCallback);
};
于 2017-03-03T12:04:18.270 回答