Tìm kiếm trang web

node.js - Cách khuyến nghị để chia sẻ kiểu giữa frontend và nodejs graphql


Tôi đã bắt đầu sử dụng TypeScript với GraphQL trên Node.js. Nhưng một điều làm tôi chú ý là việc sử dụng gql từ apollo-server-express. Liệu có cách nào tôi có thể sử dụng các kiểu được sử dụng trong schema GraphQL ở nơi khác không.

import { gql } from 'apollo-server-express';

export const userSchema = gql`
  type User {
    id: String!
    name: String
  }

  type Query {
    getUsers: [User]
  }
`;

Bây giờ tôi không muốn tạo một giao diện riêng cho User. Và muốn có một giao diện như sau sẵn sàng sử dụng:

export const usersResolver = {
  Query: {
    getUsers: () => db.get(condition).then(result => {
      const users:Array<User> = [];
    }
  }
};

Ngoài ra, tôi cũng muốn sử dụng những loại này trên frontend.

Làm thế nào điều này có thể được thực hiện.

Câu trả lời #1

Bạn nên sử dụng một công cụ như GraphQL Code Generator để tự động tạo các kiểu cho bạn dựa trên schema và các truy vấn của bạn.