小满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

目录
相关文章
|
4月前
04_装饰器封装axios_get请求
04_装饰器封装axios_get请求
48 0
|
中间件
小满nestjs(第十二章 nestjs 中间件)
中间件是在路由处理程序 之前 调用的函数。 中间件函数可以访问请求和响应对象
218 0
小满nestjs(第十二章 nestjs 中间件)
|
前端开发
前端学习案例4:ES6中的修饰器4
前端学习案例4:ES6中的修饰器4
58 0
前端学习案例4:ES6中的修饰器4
小满nestjs(第三章 前置知识装饰器)
属性描述符 可写对应writable,可枚举对应enumerable,可配置对应configurable
98 0
小满nestjs(第三章 前置知识装饰器)
|
JavaScript 前端开发 应用服务中间件
Vue中axios调用网上接口用POST方式传参
Vue中axios调用网上接口用POST方式传参
小满nestjs(第二十二章 nestjs 自定义装饰器)
在Nestjs 中我们使用了大量装饰器 decorator ,所以Nestjs 也允许我们去自定义装饰器。
145 0
小满nestjs(第二十二章 nestjs 自定义装饰器)
|
前端开发 API
每天3分钟,重学ES6-ES12(十一)Promise的类方法
每天3分钟,重学ES6-ES12(十一)Promise的类方法
80 0
小满nestjs(第十七章 nestjs 异常拦截器)
让我们创建一个异常过滤器,它负责捕获作为HttpException类实例的异常,并为它们设置自定义响应逻辑。为此,我们需要访问底层平台 Request和 Response。我们将访问Request对象,以便提取原始 url并将其包含在日志信息中。我们将使用 Response.json()方法,使用 Response对象直接控制发送的响应。
126 0
小满nestjs(第十七章 nestjs 异常拦截器)
|
中间件 数据安全/隐私保护
小满nestjs(第二十一章 nestjs 守卫)
守卫有一个单独的责任。它们根据运行时出现的某些条件(例如权限,角色,访问控制列表等)来确定给定的请求是否由路由处理程序处理。这通常称为授权。在传统的 Express 应用程序中,通常由中间件处理授权(以及认证)。中间件是身份验证的良好选择,因为诸如 token 验证或添加属性到 request 对象上与特定路由(及其元数据)没有强关联。
229 0
小满nestjs(第二十一章 nestjs 守卫)
|
前端开发 测试技术 API
小满nestjs(第八章 nestjs 控制器)
小满nestjs(第八章 nestjs 控制器)
189 0
小满nestjs(第八章 nestjs 控制器)