Я пытаюсь создать сайт, на котором я размещаю изображения по ссылкам. Если изображение отсутствует или имеет ширину всего 1 пиксель, веб-сайт должен отображать альтернативное изображение. Я использую Jade / Pug и JS.
Я стараюсь заранее составить список ссылок, прежде чем рендерить их на сайте. Таким образом, я могу просто перебросить свой список ссылок в файл .pug после этого.
Поэтому я пытаюсь проверить, имеет ли изображение определенный размер, используя только JS. Если это так, я добавляю ссылку в свой список, если нет, то я добавляю альтернативную ссылку.
Это важная часть моего кода в файле app.js:
app.get("/", function (req, res) {
//get all the books
var isbns = [];
var links = [];
dbClient.query("SELECT isbn FROM book WHERE id < 20", function (dbError, dbItemsResponse){
isbns = dbItemsResponse.rows;
var linkk = 0;
for(i=0;i<20;i++){
linkk = "http://covers.openlibrary.org/b/isbn/" + Object.values(isbns[i]) + "-M.jpg";
var wid = getMeta(linkk);
if(wid < 2){
links[i]="https://i.ibb.co/7JnVtcB/NoCover.png";
} else {
links[i]=linkk;
}
}
});
});
function getMeta(url){
var img = new Image(); //or document.createElement("img");
img.onload = function(){
alert(this.width);
};
img.src = url;
}
Это дает мне ReferenceError: Image () не определено. Если я пытаюсь использовать document.createElement ("img"); он говорит, что «документ не определен».
Как я могу проверить на стороне сервера, существует ли изображение? Или как я могу использовать Image-Constructor в моем файле app.js? Без использования моего файла Jade / Pug / HTML никоим образом.
Извините, если это глупый вопрос, но я пытаюсь понять это с 20 часов без перерыва, и я не могу заставить его работать.