Node.js中的拦截器

时间:2017-01-30 17:10:31

标签: javascript node.js interceptor koa

我试图在节点js中构建一个拦截器,但到目前为止我还没有得到它。我想拦截器,捕获每个请求并添加一个自定义头,从koa上下文中恢复。

我的意思是,例如,如果您使用请求承诺执行http请求,我想自动添加自定义标头并将其传播到命运。

有人知道吗?

1 个答案:

答案 0 :(得分:1)

拦截器基本上是中间件。

// before all
app.use(function *(next) {
  this.set('x-new-header', 'value');
  yield next;
});

// the rest
app.use(routes());

如果您的Koa应用程序的行为类似于反向代理。您可以使用pipe API将新标头传播到远程服务器。

// before all
app.use(function *(next) {
  this.set('x-new-header', 'value');
  yield next;
});

// the reverse-proxy
const request = require('co-request');
app.use(function *() {
  this.body = this.req.pipe(request(config));
});