NestJs 延伸篇 - Gateway 与 前端接通

Gateway 与 前端接通

最後我们来测试,由前端接 gateway 取得後端资料

我的 gateway port 是设定 4000 ,读者们在实作时要注意一下前端的 port 连接是否正确,如果要修改前端连接的 port 就到 vue-apollo.js 更改,预设是 4000

const httpEndpoint = process.env.VUE_APP_GRAPHQL_HTTP || 'http://localhost:4000/graphql'

接着来修改 Query Tasks 的 Schema
在 todoTasks 跟 doneTasks 都加上 user 的栏位

query todoTasks ($start: Int, $pageSize: Int){
    todoTasks(start: $start, pageSize: $pageSize) {
        taskCount
        tasks {
            _id
            title
            content
            status
            user {
                _id
                name
            }
        }
    }
}

query doneTasks ($start: Int, $pageSize: Int){
    doneTasks(start: $start, pageSize: $pageSize) {
        taskCount
        tasks {
            _id
            title
            content
            status
            user {
                _id
                name
            }
        }
    }
}

在 template 加上 user name 的栏位

<template>
    <v-list two-line>
        <v-subheader>DONE</v-subheader>
        <v-divider></v-divider>
        <v-list-item-group v-if="doneTasks">
            <template v-for="(task, index) in doneTasks.tasks" >
                <v-list-item v-if="doneTasks.tasks.length - 1 > index" :key="task.id" >
                    <v-list-item-content>
                        <v-list-item-title>{{task.user.name}} : {{task.title}} </v-list-item-title>
                        <v-list-item-subtitle>{{task.content}}</v-list-item-subtitle>
                    </v-list-item-content>
                </v-list-item>
            </template>
        </v-list-item-group>
    </v-list>
</template>

最後 UI 呈现的画面
要注意的是,新增 Task 也必须加上 UserId 才能送出
这边就给读者们一个小练习,该如何取得所有 User ,并在送出 Task 时加上 UserId

这样就完成前後端的串接,对於前端来说不需要知道获取的资料是位在哪个 Service ,他只要跟 gateway 接通便能取得所有服务的资料,真是可喜可贺 /images/emoticon/emoticon01.gif


<<:  Python - 费式数列之呼吸

>>:  [Day 28] 从零开始学Python - 深度学习Keras:如果你能预知这条路的陷阱,我想你依然错得很过瘾

【Vim 编辑器 入门指南 (上)】用思维的速度写程序

Vim 编辑器 入门指南 (上) 思考速度多快 写程序速度就多快 目录 前言 什麽是 Vim ? 三...

GitHub Action 实作持续整合 - 以 ASP.NET Core 专案为例

接下来的两篇文章,会结合前面 GitHub Action 所学,实作持续整合与持续布署两个部分。因为...

Day 10 开始你的广告活动吧

当我们熟建立了关键字的基本概念後,那不妨开始在 Google Ads 建立完善的广告活动吧,并透过一...

30天学会Python: Day 26-一心多用

同步执行 目前写的程序都是一行接着一行一行执行,这种执行的方式叫做 同步执行 print("...