小满nestjs(第四章 前置知识装饰器-实现一个GET请求)

简介: 定义 descriptor 的类型 通过 descriptor描述符里面的value 把axios的结果返回给当前使用装饰器的函数

安装依赖npm install axios -S


定义控制器 Controller


class Controller {
    constructor() {
    }
    getList () {
    }
}


定义装饰器


这时候需要使用装饰器工厂


应为装饰器默认会塞入一些参数


定义 descriptor 的类型 通过 descriptor描述符里面的value 把axios的结果返回给当前使用装饰器的函数


const Get = (url: string): MethodDecorator => {
    return (target, key, descriptor: PropertyDescriptor) => {
        const fnc = descriptor.value;
        axios.get(url).then(res => {
            fnc(res, {
                status: 200,
            })
        }).catch(e => {
            fnc(e, {
                status: 500,
            })
        })
    }
}


完整代码 接口可以直接用允许跨越的


import axios from 'axios'
const Get = (url: string): MethodDecorator => {
    return (target, key, descriptor: PropertyDescriptor) => {
        const fnc = descriptor.value;
        axios.get(url).then(res => {
            fnc(res, {
                status: 200,
            })
        }).catch(e => {
            fnc(e, {
                status: 500,
            })
        })
    }
}
//定义控制器
class Controller {
    constructor() {
    }
    @Get('https://api.apiopen.top/api/getHaoKanVideo?page=0&size=10')
    getList (res: any, status: any) {
        console.log(res.data.result.list, status)
    }
}


9310940642934e07a8dafeb160172038.png

目录
相关文章
|
JavaScript 前端开发 编译器
StencilJs 学习之组件装饰器
Stencil 是一个生成 Web Components(更确切地说,是自定义元素)的编译器。Stencil 将最流行的框架的最佳概念结合到一个简单的构建时工具中。 现在让我们一起学习其中的装饰器部分。
103 0
|
6月前
|
JavaScript 前端开发 API
Nestjs(一)入门前置知识点
Nestjs(一)入门前置知识点
116 3
|
6月前
|
Python
Python学习 -- 高阶、闭包、回调、偏函数与装饰器探究
Python学习 -- 高阶、闭包、回调、偏函数与装饰器探究
40 0
|
11月前
POST请求传递参数(十一)
POST请求传递参数(十一)
|
前端开发
前端学习案例4:ES6中的修饰器4
前端学习案例4:ES6中的修饰器4
61 0
前端学习案例4:ES6中的修饰器4
|
前端开发
前端学习案例1-偏函数1
前端学习案例1-偏函数1
46 0
前端学习案例1-偏函数1
小满nestjs(第三章 前置知识装饰器)
属性描述符 可写对应writable,可枚举对应enumerable,可配置对应configurable
103 0
小满nestjs(第三章 前置知识装饰器)
小满nestjs(第二十二章 nestjs 自定义装饰器)
在Nestjs 中我们使用了大量装饰器 decorator ,所以Nestjs 也允许我们去自定义装饰器。
156 0
小满nestjs(第二十二章 nestjs 自定义装饰器)
|
JavaScript 前端开发 应用服务中间件
Vue中axios调用网上接口用POST方式传参
Vue中axios调用网上接口用POST方式传参
小满nestjs(第十七章 nestjs 异常拦截器)
让我们创建一个异常过滤器,它负责捕获作为HttpException类实例的异常,并为它们设置自定义响应逻辑。为此,我们需要访问底层平台 Request和 Response。我们将访问Request对象,以便提取原始 url并将其包含在日志信息中。我们将使用 Response.json()方法,使用 Response对象直接控制发送的响应。
138 0
小满nestjs(第十七章 nestjs 异常拦截器)