带有异步返回的json对象的Javascript无服务器错误

时间:2018-09-20 12:30:03

标签: javascript httpresponse serverless

首先,我编写如下的lambda函数:

function jsonResponse(status, header, body) {
  return {
    headers: Object.assign(header, {
      'Access-Control-Allow-Origin': '*',
      'Content-Type': 'application/json;charset=utf-8'
    }),
    statusCode: status,
    body: JSON.stringify(body)
  }
}

export const hello = async (event, context, cb) => { 
  const rep = {
      message: 'v1.0',
      event: event
  };
  cb(null, jsonResponse(201, {}, rep)); 
  return;
};

工作正常,但是根据无服务器论坛the serverless office forumblog 代码应该是

function createResponse(status, header, body) {
  return {
    headers: Object.assign(header, {
      'Access-Control-Allow-Origin': '*',
      'Content-Type': 'application/json;charset=utf-8'
    }),
    statusCode: status,
    body: JSON.stringify(body)
  }
}

export const hello = async (event, context) => { 
  const rep = {
      message: 'v1.0',
      event: event
  };
  return createResponse(201, {}, rep);
};

用于使用回调参数,因为它不是异步处理程序语法的正式组成部分。

我使用与文章相同的版本nodejs 8.10, 但是,当我应用return函数时,出现502错误:

{
"message": "Internal server error"
}

我的无服务器处理程序配置:

functions:
  first:
    handler: handlers/first.hello
    events:
      - http:
          path: first
          method: get

当我尝试在本地运行它时,它将继续运行,而此处理程序没有任何输出。

您能告诉我为什么是内部错误以及如何解决吗?

0 个答案:

没有答案