Чтобы стараться сохранять axios как можно "легче", а также не "раздувать" код, поддерживая все возможные фишки, зачастую приходится сказать "решительное НЕТ" - пулл реквестам :) Это совсем не означает, что с ними что-то "не так", просто иногда более правильный путь - дополнять и расширять axios другими библиотеками.
$ npm install axios promise --save
const axios = require('axios');
require('promise/polyfill-done');
axios
.get('http://www.example.com/user')
.then((response) => {
console.log(response.data);
return response;
})
.done();
$ npm install axios promise.prototype.finally --save
const axios = require('axios');
require('promise.prototype.finally').shim();
axios
.get('http://www.example.com/user')
.then((response) => {
console.log(response.data);
return response;
})
.finally(() => {
console.log('this will always be called');
});
$ npm install axios pako --save
// client.js
const axios = require('axios');
const pako = require('pako');
const user = {
firstName: 'Fred',
lastName: 'Flintstone'
};
const data = pako.deflate(JSON.stringify(user), { to: 'string' });
axios
.post('http://127.0.0.1:3333/user', data)
.then((response) => {
response.data = JSON.parse(pako.inflate(response.data, { to: 'string' }));
console.log(response.data);
return response;
});
// server.js
const pako = require('pako');
const http = require('http');
const url = require('url');
const server = http.createServer((req, res) => {
req.setEncoding('utf8');
const parsed = url.parse(req.url, true);
const pathname = parsed.pathname;
if (pathname === '/user') {
let data = '';
req.on('data', (chunk) => {
data += chunk;
});
req.on('end', () => {
const user = JSON.parse(pako.inflate(data, { to: 'string' }));
console.log(user);
res.writeHead(200, {
'Content-Type': 'application/json'
});
res.end(pako.deflate(JSON.stringify({result: 'success'}), { to: 'string' }));
});
} else {
res.writeHead(404);
res.end(pako.deflate(JSON.stringify({result: 'error'}), { to: 'string' }));
}
});
server.listen(3333);
$ npm install jsonp --save
const jsonp = require('jsonp');
jsonp('http://www.example.com/foo', null, (err, data) => {
if (err) {
console.error(err.message);
} else {
console.log(data);
}
});