我在节点中有一个非常简单的url验证功能。此函数使用图像URL并使用request
模块向该URL发出请求。然后我检查响应的内容类型。但是,间歇性地我得到错误:File Type 'text/html; charset=utf-8' is not supported
,如果有人试图检索我不支持的图像类型,这是一个错误。由于它是间歇性的,我在弄清楚我做错了什么时遇到了一些麻烦。
let request = require('request');
function verifyImage(url) {
return new Promise((resolve, reject) => {
const imgTypes = ['image/jpeg', 'image/jpg', 'image/png', 'image/gif'];
request(url, (error, response) => {
if (error) {
reject(error);
}
if (!imgTypes.includes(response.headers['content-type'])) {
reject(`File Type ${response.headers['content-type']} is not supported`)
}
resolve(response.statusCode);
})
})
}
我使用的示例网址是https://external.xx.fbcdn.net/safe_image.php?d=AQDoWX9zu4XvJYRF&url=http%3A%2F%2Fwww.manutd.com%2F%7E%2Fmedia%2F3390670C247245C29BF10C98C6D454C1.ashx&_nc_hash=AQA-e6n3PXxemXam