如何将此函数的内容返回给客户端?

时间:2019-06-12 12:30:38

标签: javascript amazon-web-services aws-lambda netlify

我有一个使用

调用的函数
     fetch(http://localhost:8888/.netlify/functions/token-hider? 
     stateName=' +stateName) 

在我的客户端。

token-hider函数如下所示:

const qs = require("qs");
const fetch = require("node-fetch");

var alertEndpoint = "";
var parkEndpoint = "";
var parksWithAlerts = "";



exports.handler = async function getURLS(event, context, callback) 
{
  // Get env var values defined in our Netlify site UI
 const {api_key, alert_api_url, park_api_url} = process.env;

  var stateName =event.queryStringParameters.stateName;
  alertEndpoint = `${alert_api_url}${stateName}${api_key}`;
  parkEndpoint = `${park_api_url}${stateName}${api_key}`;

 getData();



 async function getData(alertsArea, alertHeader) {


 const [getAlertData, getParkData] = await 
 Promise.all([fetch(alertEndpoint), fetch(parkEndpoint)] );


 var alertResults = await getAlertData.json();
 var parkResults=  await getParkData.json();
 var alertData = alertResults.data;
 var parkData = parkResults.data;

 parksWithAlerts = parkData.map(park => {
  park.alertData = alertData.filter(alert => alert.parkCode === 
  park.parkCode);
  return park

  });

  console.log(parksWithAlerts);

   }
 console.log(callback);
 };

此功能完成后,如何将parksWithAlerts的内容返回给客户端?

2 个答案:

答案 0 :(得分:1)

尝试更多地了解Javascript中的回调功能。 就在您的代码中,实际上,假设您正在执行代码后将调用您正在打印的callback,您可以像这样callback(parksWithAlerts);进行操作。 在调用函数getURLS时,您将提供应该通过args调用的函数。

示例:https://www.geeksforgeeks.org/javascript-callbacks/

答案 1 :(得分:0)

这里是一个错误处理并返回JSON响应类型的示例

res.send(results);

token-hider

注意: :如果要隐藏令牌,请确保不要从Netlify上的公共存储库中部署它。

此外,此代码尚未经过100%的测试,因此可能需要解决一些问题。我在Netlify的一些lambda函数中使用了响应布局和结构。