小编die*_*uge的帖子

使用 Dataloader 处理 GraphQL 字段参数?

我想知道在使用 Dataloader 时如何最好地处理 GraphQL 字段参数是否有任何共识。batchFnDataloader 需要的批处理函数期望接收Array<key>并返回一个Array<Promise>,通常只调用load( parent.id )whereparent是给定字段的解析器的第一个参数。在大多数情况下,这很好,但是如果您需要为嵌套字段提供参数怎么办?

例如,假设我有一个 SQL 数据库,其中包含用于Users, 的表Books,以及一个称为BooksRead表示用户:书籍之间 1:many 关系的关系表。

我可能会运行以下查询来查看所有用户阅读的书籍:

query {
  users {
    id
    first_name
    books_read {
      title
      author {
        name
      }
      year_published
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

假设在 中有一个BooksReadLoaderavailable context,这样解析器 forbooks_read可能如下所示:

const UserResolvers = {
  books_read: async function getBooksRead( user, args, context ) {
    return await context.loaders.booksRead.load( user.id );
  }
};
Run Code Online (Sandbox Code Playgroud)

的批处理加载函数BooksReadLoader将 …

javascript sql graphql apollo-server

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

是的,验证对象数组最多包含一个对象,其中属性 = 值

我正在使用 FormikFieldArray将对象动态添加到数组中,当对象被添加到数组时呈现额外的表单元素push()

我的架构如下所示:

const EMAIL_SCHEMA = Yup.object().shape({
  address: Yup.string().email().required( 'E-mail address is required.' ),
  isPreferredContact: Yup.boolean()
})

const SCHEMA = Yup.object().shape({
  emails: Yup.array()
             .of( EMAIL_SCHEMA )
             .ensure()
             .compact( v => !v.address )
             .required( 'At least one e-mail address is required.' )
})
Run Code Online (Sandbox Code Playgroud)

对于每个电子邮件输入,都有一个相应的复选框来指示它是否是首选的联系电子邮件地址。没有电子邮件地址需要作为首选标记。

我想要做的是验证数组最多包含一个对象,其中isPreferredContactis true。如果在阵列中的3电子邮件对象和isPreferredContactfalse为所有的人,这是一个有效的状态。也就是说:

let values = [
  {address: '1@email.com', isPreferredContact: false},
  {address: '2@email.com', isPreferredContact: false},
  {address: '3@email.com', isPreferredContact: false}
] // …
Run Code Online (Sandbox Code Playgroud)

reactjs yup formik

6
推荐指数
1
解决办法
4748
查看次数

docker-compose java 无法访问 jarfile

我正在尝试将 Spring Boot 应用程序作为 Docker Compose 设置中的服务之一运行,但是每当我运行docker-compose up -d容器时,运行 Spring Boot 应用程序的容器都会失败并立即退出。出于这篇文章的目的,我使用了诸如“mycontainer”和“myfile”之类的通用名称。

运行docker-compose logs core显示错误信息为:

mycontainer | Error: unable to access jarfile myjar.jar

我的 docker-compose 文件是:

version: '3.3'

services:
  webapp:
    image: webapp_image
    container_name: webapp-container
    build:
      context: ./webapp
      dockerfile: Dockerfile
    volumes:
      - './webapp:/usr/src/app'
    ports:
      - 3000:3000
      - 35729:35729
    environment:
      - NODE_ENV=development
      - env_file=./webapp/.env

  core:
    image: core_image
    container_name: core-container
    build:
      context: ./core
      dockerfile: Dockerfile
    volumes:
      - './core:/usr/src/core'
      - './algorithms:/usr/src/algorithms'
    ports:
      - 8080:8080
    environment:
      - JARFILE=myjar.jar
      - JAVA_OPTIONS=-Djava.security.egd=file:/dev/./urandom
Run Code Online (Sandbox Code Playgroud)

该 …

java shell docker spring-boot docker-compose

4
推荐指数
1
解决办法
2651
查看次数