小编Ank*_*yan的帖子

urql useQuery 的暂停选项不会暂时冻结请求

我正在尝试使用以下代码一次只执行 urql useQuery。但出于某种原因,每次重新渲染时都会调用它。

根据文档https://formidable.com/open-source/urql/docs/basics/queries/#pausing-usequery 这个查询应该最初在渲染时暂停,它应该只在从 React.useEffect 调用时执行山。

const [{ fetching, data, error }, reExecute] = useQuery({
  query: INITIAL_CONFIG_QUERY,
  pause: true
});

React.useEffect(() => {
  reExecute();
}, []);
Run Code Online (Sandbox Code Playgroud)

使用 urql 仅一次执行查询的最佳方法是什么?

javascript reactjs graphql react-hooks urql

7
推荐指数
1
解决办法
764
查看次数

微服务内部通信

我正在向微服务架构师学习 API。这是有关设置的小描述

  • 我有两个微服务应用程序和 API 网关
  • 包括API网关在内的所有应用程序都是nodeJs - Express应用程序。
  • 身份验证逻辑 - JWT,在 API 网关上处理
  • 使用 http 代理将每个传入 API 网关请求传递到每个微服务应用程序。
  • 还将用户信息作为代理标头传递。

客户端请求流程:
客户端使用 JWT 令牌向微服务 1 请求 API1,该令牌将在 API 网关进行身份验证,然后从微服务 1 提供信息。这很好。
但我有一个私有 API2,客户端不应该允许它。只有内部应用程序可以使用它,但它应该可以根据客户端的另一个请求进行调用。

例如。

client request -> /API/Gateway1 (has JWT)
/API/Gateway1 -> API1 (has valid user)
API1 -> /API/Gateway2 (has valid user)
/API/Gateway2 -> API2 (has valid user)
Run Code Online (Sandbox Code Playgroud)

问题:
如何从客户端保护 API2,如果客户端伪造有效的用户标头怎么办?

microservices

3
推荐指数
1
解决办法
1272
查看次数

带有异步等待的数组缩减功能

我试图从基于异步运算符的数组对象中跳过一个对象。我尝试过以下情况,但出现类型错误。

尝试过的方法 1

newObjectArray = await Promise.all(objectAray.reduce(async (result, el) => {
  const asyncResult = await someAsyncTask(el);
  if (asyncResult) {
      result.push(newSavedFile);
  }
  return result;
}, []));
Run Code Online (Sandbox Code Playgroud)

试过的方法2

newObjectArray = await Promise.all(objectAray.reduce(async (prevPromise, el) => {
  const collection = await prevPromise;
  const asyncResult = await someAsyncTask(el);
  if (asyncResult) {
      prevPromise.push(newSavedFile);
  }

  collection.push(newSavedFile);
  return collection;
}, Promise.resolve([])));
Run Code Online (Sandbox Code Playgroud)

错误

'TypeError: #<Promise> is not iterable',
'    at Function.all (<anonymous>)',
Run Code Online (Sandbox Code Playgroud)

javascript async-await

2
推荐指数
1
解决办法
4200
查看次数