使用代码优先方法在Nestjs中创建变异

时间:2019-04-29 09:51:33

标签: typescript nestjs

我正在创建一个基于Nestjs(代码优先方法)和pyramida用于数据库管理的graphql api。我遵循了nestjs的官方页面,并成功创建了用于容纳我的查询,订阅和变异的解析器。我的第一个查询工作正常,没有任何问题。但是,在创建突变后,创建的突变不会提示输入任何参数,并且graphql游乐场不会在我的突变请求中指出错误。 此突变负责创建用户,并应采用两个参数来成功完成操作。

我曾尝试使用架构优先方法重新创建变异,但是应用在启动期间崩溃。我还尝试向该突变添加名称属性,但仍然没有任何反应。

这是我的变异

TextView tvName = findViewById(R.id.tv_name);
tvName.setText("Your Include layout ID access and set Text in this textView");

和用户服务

@Mutation(returns => User, { name: 'createUser' })
  async createUser(args) {
    return await this.userService.createUser(args);
  }

该突变应在细分前提示两个参数,在细分后应在db中创建一个用户实例

1 个答案:

答案 0 :(得分:0)

我创建了

之类的UserInput类
import { InputType, Field } from 'type-graphql';

@InputType()
export class UserInput {
  @Field() name: string;
  @Field() email: string;
}

并将我的解析器更改为

import {Args} from '@nestjs/graphql';
import {UserInput} from './path-to-the-user-input-class-created';


@Mutation(returns => User, { name: 'createUser' })
  async createUser(@Args('data') user: UserInput) {
    return await this.userService.createUser(user);
  }

有了这一更改,我的突变现在可以按预期运行。它会提示您输入必需的变量,并完成提交过程。