【问题标题】:Passing query string parameters in Lambda functions (Netlify)在 Lambda 函数中传递查询字符串参数 (Netlify)
【发布时间】:2020-07-21 20:47:17
【问题描述】:

我正在尝试将查询字符串传递给我的无服务器函数,但它一直返回一个空对象。

    search = (searchTerm) => {
      // let url = `${URL}${searchTerm}`;
      return fetch(`/.netlify/functions/token-hider?search=${searchTerm}`)
        .then((response) => response.json())
        .then((result) => {
          console.log(result.results);
          return results;
        });
form.addEventListener("submit", (e) => {
  e.preventDefault();
  let searchTerm = input.value;
  search(searchTerm);
});

const axios = require("axios");
const qs = require("qs");

exports.handler = async function (event, context) {
  // apply our function to the queryStringParameters and assign it to a variable
  const API_PARAMS = qs.stringify(event.queryStringParameters.search);
  console.log(event);
  // const API_PARAMS = qs.stringify(event.queryStringParameters);
  console.log("API_PARAMS", API_PARAMS);
  // Get env var values defined in our Netlify site UI

  // TODO: customize your URL and API keys set in the Netlify Dashboard
  // this is secret too, your frontend won't see this
  const { KEY } = process.env;
  const URL = `https://api.unsplash.com/search/photos?page=1&per_page=50&client_id=${KEY}&query=${API_PARAMS}`;

  console.log("Constructed URL is ...", URL);

  try {
    const { data } = await axios.get(URL);
    // refer to axios docs for other methods if you need them
    // for example if you want to POST data:
    //    axios.post('/user', { firstName: 'Fred' })
    return {
      statusCode: 200,
      body: JSON.stringify(data),
    };
  } catch (error) {
    const { status, statusText, headers, data } = error.response;
    return {
      statusCode: error.response.status,
      body: JSON.stringify({ status, statusText, headers, data }),
    };
  }
};

当我对查询字符串进行硬编码时它可以工作,并且我可以通过控制台记录搜索词并对其进行定义。

【问题讨论】:

  • “当我对查询字符串进行硬编码时它可以工作” ????硬编码它在哪里console.log("API_PARAMS", API_PARAMS) 显示什么?

标签: javascript lambda query-string netlify


【解决方案1】:

由于 Netlify 重定向机制无法为您提供它匹配的规则的数据,您可以尝试匹配函数中的原始请求以确定它应该做什么。

希望这可以帮助您解决您的具体问题!

Here is the reference

【讨论】:

  • 您好。基于链接的答案可能是 cmets。
猜你喜欢
  • 1970-01-01
  • 2016-03-07
  • 2021-07-05
  • 1970-01-01
  • 2017-11-14
  • 1970-01-01
  • 2014-01-28
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多