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, 禁止转载 ?️,侵权必究⚠️!