Javascript Middy API,使用jsonBodyParser中间件返回对象

Javascript Middy API,使用jsonBodyParser中间件返回对象,javascript,middy,Javascript,Middy,现在我必须以这种方式返回数据,代码如下: import middy from '@middy/core'; import httpErrorHandler from '@middy/http-error-handler'; import jsonBodyParser from '@middy/http-json-body-parser'; async function sampleFunction (event) { const result = await someCodeWith(ev

现在我必须以这种方式返回数据,代码如下:

import middy from '@middy/core';
import httpErrorHandler from '@middy/http-error-handler';
import jsonBodyParser from '@middy/http-json-body-parser';

async function sampleFunction (event) {
  const result = await someCodeWith(event.body);
  return result;
}

export const handler = middy(sampleFunction)
  .use(jsonBodyParser())
  .use(httpErrorHandler());
但我得到一个错误作为回应:

{
  "message": "Internal server error"
}
所以我需要返回这个对象中的数据:

return {
  statusCode: 200,
  body: JSON.stringify(error)
};

但是我认为通过使用middy,我不需要创建那个对象,它已经被字符串化了,而且里面还有一个状态码。我不想手动设置200、400、500等的每个状态码。有没有办法只返回数据作为javascript对象的数据?

Middy可以由多个事件上下文使用。在这种情况下,API网关要求响应遵循您描述的以下模式。您可以添加自己的中间件,在响应返回之前对其进行转换

大概是这样的:

const strigifyResponse=()=>{
返回{
之后:(处理程序,下一步)=>{
handler.response={
状态代码:200,
正文:JSON.stringify(handler.response)
}
下一个()
}  
}
}
export const handler=middy(sampleFunction)
.use(strigifyResponse())
.use(jsonBodyParser())
.use(httpErrorHandler());