NestJSとGraphQL CRUDを試してみてください
1.データベース連動
バインドされたデータベース設定で値を合わせます.ここで、受信したデータベースは、データベース名とパスワードのみを再設定します.
エラーの解決:
er_not_supported_auth_mode: client does not support authentication protocol requested by server; consider upgrading mysql client
alter user 'einere'@'%' identified with mysql_native_password by 'mypassword';
2.Playground(CRUD)の使用
コメントリンク
1.受信したクローンからnpm installをダウンロード
2.npm run start:dev実行サーバ
3. http://localhost:4000/graphqlに入る
4.実験内容
mutation{
createCat(input:{
name :"Name",
description : "Description"
}
){
ok
error
__typename
}
}
query{
getCat(input:{
id :1
}){
error
ok
}
}
解析器、サービス、dto、entityで規定されているように入力するしかありません.5.追加試行:支店を再開設して行う
全体の原理に対する考え方:解析器とサービス間の通信ではdto形式でサーバと接続されていると考えられる.
mutation{
updateCat(input:{
id :3,
name : "냥이",
description : "냥이입니다."
# create와 달리 id가 들어간다.
}){
error
ok
__typename
}
}
このために作成された他のコード
import { InputType, ObjectType, PartialType, PickType } from "@nestjs/graphql";
import { CoreOutput } from "src/common/dtos/output.dto";
import { Cat } from "../entities/cat.entity";
@InputType()
export class UpdateCatInput extends PickType(Cat, ["id", "name", "description"]){
// PickType으로 원하는 자료를 가져온다.
}
@ObjectType()
export class UpdateCatOutput extends CoreOutput {
}
@Mutation(returns => UpdateCatOutput)
async updateCat(
@Args('input') updateCatInput: UpdateCatInput
): Promise<UpdateCatOutput>{
return this.catService.updateCat(updateCatInput)
}
async updateCat(updateCatInput: UpdateCatInput): Promise<UpdateCatOutput> {
try {
/* update Cat */
await this.cats.update(updateCatInput.id, {...updateCatInput});
return {
ok: true
}
}catch(e){
console.log(e);
return {
ok: false,
error: "Cannot update cat"
}
}
}
mutation{
deleteCat(input:{
id : 2,
name : "Nero",
description : "Description"
}){
error
ok
__typename
}
}
何を削除するかを確認前の内容はdeleteに変更するだけです.
Reference
この問題について(NestJSとGraphQL CRUDを試してみてください), 我々は、より多くの情報をここで見つけました https://velog.io/@sinichy7/NestJSGraphQL-쓰는-법テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol