本文介绍了如何在SuperAgent的每个请求中注入自定义HTTP标头?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
显然,支持自定义HTTP标头:
Clearly SuperAgent supports custom HTTP headers:
request
.post('/api/pet')
.send({ name: 'Manny', species: 'cat' })
.set('X-API-Key', 'foobar')
.set('Accept', 'application/json')
.end(function(err, res){
if (res.ok) {
alert('yay got ' + JSON.stringify(res.body));
} else {
alert('Oh no! error ' + res.text);
}
});
我的问题:
- 如果我通过npm下拉SuperAgent,我怎样才能在SuperAgent的所有请求中注入我自己的HTTP头?
- 注意:我完全愿意创建一个新的npm包,如有必要,可以扩展SuperAgent。
推荐答案
我只是制作一个单独的模块用这样的东西:
I'd just make a separate module with something like this:
var superagent = require('superagent');
var defaultHeaders = {};
function isObject(obj) { return Object(obj) === obj; };
function request(method, url) {
return superagent(method, url).set(defaultHeaders);
}
request.set = function (field, value) {
if (isObject(field)) {
for(var key in field) this.set(key, field[key]);
return this;
}
defaultHeaders[field] = value;
return this;
}
module.exports = request;
用法
Usage
var request = require('./myagent');
request.set({'X-My-Header': 'foo'}); // sets the default
request.get('/bar').send() // will send the default header
模块的行为与superagent相同,但在返回 Request
对象之前设置默认标头。请参阅
The module behaves the same way as superagent but sets default headers before returning the Request
object. See here
这篇关于如何在SuperAgent的每个请求中注入自定义HTTP标头?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!