首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何访问loopback4中的请求头?

如何访问loopback4中的请求头?
EN

Stack Overflow用户
提问于 2020-08-13 16:45:34
回答 3查看 1.6K关注 0票数 0

我使用下面这样的简单语句来访问loopback4中的标头。

代码语言:javascript
复制
console.log(request.headers);

但它是没有定义的印刷。我想要访问的请求头示例在图像中。请求头图像

我正在接收请求及其标题,这是非常好的。这只是因为我无法访问它的头部,因为我正在从request.headers中得到未定义的信息。

我是一个环回初学者,所以请解释它。

如果我必须使用一个from解析器,那么我必须如何在loopback4中使用它,因为它与express不同。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2020-08-14 10:01:23

更新

最初的答案虽然有效,但并不是推荐的方法。使用依赖注入代替:

代码语言:javascript
复制
import {inject} from '@loopback/core';
import {get, param} from '@loopback/rest';

export class SomethingController {
  constructor() {}

  @get('/something')
  something(@param.header.string('x-your-header') yourHeader: string): void {
    // Use your header.
    // e.g. Log to console
    console.log(yourHeader);
  }
}

与请求对象不同的是,它去掉了不必要的信息,并提供了内置强制。

进一步阅读

原始答案

如果试图访问Controller中的标头,则可以注入请求对象:

代码语言:javascript
复制
import {inject} from '@loopback/core';
import {get, Request, RestBindings} from '@loopback/rest';

export class SomethingController {
  constructor(@inject(RestBindings.Http.REQUEST) private req: Request) {}

  @get('/something')
  something(): void {
    // Get the headers
    this.req.headers;
  }
}
票数 3
EN

Stack Overflow用户

发布于 2020-08-14 09:17:43

sequence.ts中,request对象通过context调用。

代码语言:javascript
复制
  const {request, response} = context;
  console.log(request.headers)

添加登录sequence.ts以获取请求头。

票数 0
EN

Stack Overflow用户

发布于 2020-08-14 13:23:39

您还可以使用上下文,例如

代码语言:javascript
复制
import {inject} from '@loopback/core';
import {
  post, RequestContext
} from '@loopback/rest';

export class UserController {
  constructor(
    @inject.context() 
    public context: RequestContext,
  ) {}

    @post('/users/logout', {
    responses: {
      '200': {
        description: 'Return success',
        content: {
          'application/json': {
            schema: {
              type: 'object'               
            },
          },
        },
      },
    },
  })
     async logout(): Promise<object> {
    // ensure the token exists
    const authHeader = this.context.request.headers.authorization;
    if(authHeader && authHeader.split(" ")[1]){
      //    remove token
      return {code:204, status: true, message:'Logout successful'};
    }else{
      return {code: 404, status: false, message:'Something went wrong'};
    }    
  }
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63399686

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档