更好的方法来拦截nodejs进一步发出的请求

时间:2017-11-24 06:47:36

标签: node.js express interceptor

我用express框架创建了一个nodejs服务器A.我使用request-promise模块向不同的服务器B发出http请求。浏览器使用cookie数据调用服务器A.此cookie包含我还想传递给服务器B的jwt令牌。

@Get("/users")
getUsers( @Cookie('token') token: any): any {
    let usersPromise = Users.getUsers(jwt);
    return Promise.all([usersPromise])
        .then(response => {
            return response.users;

        });
}

我创建了一个Users类,它使用request-promise模块进一步调用服务器B.一种方法是将jwt令牌直接传递给我在

中执行的每个调用
let usersPromise = Users.getUsers(jwt);

有没有其他方法可以采取拦截的方式来做到这一点?

1 个答案:

答案 0 :(得分:0)

我有superagent个包拦截我的所有请求并将jwt附加到标题。

配置此

安装superagentsuperagent-use个模块

npm install superagent superagent-use --save

需要模块

var request = require('superagent-use')(require('superagent'));

然后定义superagent中间件

// interceptor used by superagent to add jwt in header for each request
request.use((req) => {
    req.header.jwt = jwt;
    return req;
});

然后拨打电话

request
  .get(url)
  .query({ view: 'jsonView' });

Superagentrequest-promise更有用,因为此模块提供承诺 rxjs 基础apis,网址前缀优雅的方式来附加查询字符串