Skip to main content

Створення endpoint у Node Red

ВІДЕО РЕЗУЛЬТАТ після виконання всіх дій з сторінкою Gallery.
Створення цієї сторінки почнемо з створення endpoint.
Перейдемо до виконання

Додаємо три нових endpoints:

1.Отримати унікальний текст, на основі якого формувалося зображення.

image.png

Використувуємо ноди:

  • http in (GET);
  • function.  У тілі функції пишемо: 
    msg.payload = ([
        {
            $match: {
                "deleted": false,
                "collection": objectid(msg.payload.collection)
            }
        },
        { 
            $group: { _id: "$text" } 
        },
        { 
            $project: { _id: 0, text: "$_id" } 
            }
    ])
    
    return msg
    У ноді функції додаємо бібліотеку objectid . 

    image.png

    image.png

  • mongodb in. Обираємо collection-gallery, operation-aggregate

    image.png

  • http response


2. Отримати зображення по тексту.

image.png

Використувуємо ноди:

  • http in(GET);
  • function. У тілі функції пишемо: 
    msg.payload = {
        text: msg.payload.text,
        deleted: false
    }
    return msg;
  • mongodb in.

    image.png

  • function. У тілі функції пишемо:
    const result = [];
    for (const image of msg.payload) {
    
        const timeDiff = new Date(image.expireTime).getTime() - new Date().getTime();
        if (timeDiff > 0) {
            result.push(image);
        }
    }
    
    msg.payload = result;
    
    return msg;
    

Фільтруємо дані таким чином, щоб повернулися лише ті картинки, посилання на які ще дійсне.

  • http request;


3. Видалення усіх картинок за вказаним текстом

image.png

Використувуємо ноди:

  • http in(PUT)
  • function. Вказумо, що треба оновити deleted на true у об'єктів з вказаним текстом. 
    msg.query = {
        text: msg.payload.text
    }
    
    msg.payload = {
        $set: {
            deleted: true
        }
    }
    
    return msg;
  • mongodb out

    image.png

  • http response