前端开发中,我们经常需要处理HTTP请求,这时候用superagent这个库就非常方便了。而superagent-bluebird-promise是一个基于superagent的Promise库,能更好地处理异步操作。
安装
npm install superagent npm install bluebird npm install superagent-bluebird-promise
简单使用
var request = require('superagent-bluebird-promise'); request.get('/api/books').then((res) => { console.log(res.body); }).catch((err) => { console.log(err.response.body); });
操作get请求
request.get('/api/books').query({limit: 10, offset: 0}).then((res) => { console.log(res.body); }).catch((err) => { console.log(err.response.body); });
操作post请求
request.post('/api/books').send({title: 'book', author: 'author'}).then((res) => { console.log(res.body); }).catch((err) => { console.log(err.response.body); });
设定超时
request.get('/api/books').timeout(2000).then((res) => { console.log(res.body); }).catch((err) => { console.log('time out!'); });
操作文件上传
request.post('/upload').attach('file', 'filepath').then((res) => { console.log(res.body); }).catch((err) => { console.log(err.response.body); });
设定请求头
request.get('/api/books').set('Authorization', 'Bearer ' + access_token).then((res) => { console.log(res.body); }).catch((err) => { console.log(err.response.body); });
设定请求类型和返回类型
request.post('/api/auth').type('form').accept('json').send({username: 'user', password: '123'}).then((res) => { console.log(res.body); }).catch((err) => { console.log(err.response.body); });
这里我们测试的是form表单格式的请求,返回的是JSON类型的数据,这些格式都可以根据需求进行设定。
小结
superagent-bluebird-promise库非常方便地处理异步操作,减少了回调嵌套的问题,能够更好地维护代码,提高代码的可读性和可维护性。
不过需要注意的是,当请求失败时请务必记得处理错误,否则会引发不必要的问题。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/161400