Node.js的那些坑(一)—— 图片下载有时为0字节
问题:node.js下载图片一直是打开为空的状态
- 错误代码
async getImage(imageUrl) {
const imageInfo = this.getImageInfo(imageUrl);
const imagePath = path.join(__dirname, `../static/image/${imageInfo.name}`);
await request.get(imageUrl).pip(fs.createWriteStream(imagePath))
},
const rp = = require('request-promise');
async getImage(imageUrl) {
const imageInfo = this.getImageInfo(imageUrl);
const imagePath = path.join(__dirname, `../static/image/${imageInfo.name}`);
await rp.get(imageUrl).pipe(fs.createWriteStream(imagePath));
},
- 优化代码
async getImage(imageUrl) {
const imageInfo = this.getImageInfo(imageUrl);
const imagePath = path.join(__dirname, `../static/image/${imageInfo.name}`);
// const isexit = fs.statSync(imagePath);
return new Promise(resolve => {
request({
url: imageUrl,
encoding:null
}, (err, response, body) => {
fs.writeFileSync(
imagePath,
body,
{
encoding:'binary'
}
)
resolve()
})
})
},
- 原因: