How to use axios.js instead of request.js to get data as a buffer All In One
如何使用 axios.js 代替 request.js 获取数据作为缓冲区
question
const fs = require("fs");
var path = require("path");
const { exit } = require("process");
// request
const request = require("request");
// const request = require("request-promise-native");
const log = console.log;
var folder = path.resolve(__dirname, '../pdf');
// log('folder', folder);
if (!fs.existsSync(folder)) {
fs.mkdirSync(folder);
}
async function downloadPDF(url, filename) {
log('? pdf downloading ...');
// ✅
const pdfBuffer = await request.get({
uri: url,
encoding: null,
// encoding: 'utf-8',
});
fs.writeFileSync(filename, pdfBuffer);
log('✅ pdf finished!');
// exit 0;
}
const url = 'https://cs193p.sites.stanford.edu/sites/g/files/sbiybj16636/files/media/file/l1.pdf';
const filename = folder + '/cs193p-2021-l1.pdf';
log('filename =', filename);
downloadPDF(url, filename);
error
const fs = require("fs");
var path = require("path");
const { exit } = require("process");
// axios
const axios = require("axios");
// const request = require("request");
// const request = require("request-promise-native");
const log = console.log;
var folder = path.resolve(__dirname, '../pdf');
// log('folder', folder);
if (!fs.existsSync(folder)) {
fs.mkdirSync(folder);
}
async function downloadPDF(url, filename) {
log('? pdf downloading ...');
axios({
method: 'get',
url,
responseType: 'stream',
// responseType: 'arraybuffer',
// responseType: 'document',
})
.then((response) => {
console.log(`response`, response.data)
// ❌
// response.data.pipe(fs.createWriteStream(filename))
// response.data.pipe((pdfBuffer) => fs.writeFileSync(filename, pdfBuffer))
let pdfBuffer = response.data;
fs.writeFileSync(filename, pdfBuffer);
// log('✅ pdf finished!');
});
// const pdfBuffer = await request.get({
// uri: url,
// encoding: null,
// // encoding: 'utf-8',
// });
// fs.writeFileSync(filename, pdfBuffer);
// log('✅ pdf finished!');
// exit 0;
}
const url = 'https://cs193p.sites.stanford.edu/sites/g/files/sbiybj16636/files/media/file/l1.pdf';
const filename = folder + '/cs193p-2021-l1.pdf';
log('filename =', filename);
downloadPDF(url, filename);
/*
https://www.cnblogs.com/xgqfrms/p/16073509.html
https://www.npmjs.com/package/request ❌ This package has been deprecated
const request = require('request');
request('http://www.google.com', function (error, response, body) {
console.error('error:', error); // Print the error if one occurred
console.log('statusCode:', response && response.statusCode); // Print the response status code if a response was received
console.log('body:', body); // Print the HTML for the Google homepage.
});
https://www.npmjs.com/package/axios
// GET request for remote image in node.js
axios({
method: 'get',
url: 'https://bit.ly/2mTM3nY',
responseType: 'stream'
})
.then(function (response) {
response.data.pipe(fs.createWriteStream('ada_lovelace.jpg'))
});
*/
solution
demos
(? 反爬虫测试!打击盗版⚠️)如果你看到这个信息, 说明这是一篇剽窃的文章,请访问 https://www.cnblogs.com/xgqfrms/ 查看原创文章!
refs
©xgqfrms 2012-2021
www.cnblogs.com/xgqfrms 发布文章使用:只允许注册用户才可以访问!
原创文章,版权所有©️xgqfrms, 禁止转载 ?️,侵权必究⚠️!
- instead request buffer axios toinstead request buffer axios response request axios 全家request文件axios instead children removed instead version compiler detected instead running poi different instead process disableglobaltransaction property default instead instead deep use deprecated instead version please