Создание таска

CRUD – Create, Read, Update, Delete

CRUD — это аббревиатура, которая описывает четыре основные функции для работы с сущностями.

Практически любое приложение работает с сущностями, которые можно создать, прочитать, изменить или удалить.

В нашем случае сущностью будет таск (задача).

Его можно создать, прочитать, изменить или удалить.

Мы послледовательно реализуем все четыре функции.


Теперь, когда у нас есть база данных MongoDB, мы можем создать таск.

Принцип работы будет таким:

  1. N8N получает HTTP запрос с данными таска.
  2. N8N подключается к базе MongoDB и сохраняет таск.

Сценарий будет выглядеть так:

img1.png

Первый узел - Webhook

Задача первого узла - получить HTTP запрос с данными таска.

Из примера видно, что данные таска прислал Postman в формате JSON.

URL: https://bogutski.up.railway.app/webhook/todo
Method: POST
        
{
  "title": "First Task"
}

img2.png

Второй узел - Code

Второй узел с кодом на JavaScript, нужен чтобы подготовит данные для передачи в узел MongoDB.

Он формирует объект с полями:

  • title - заголовок таска, который пришёл в HTTP запросе.
  • complete - статус таска, по умолчанию false.
  • createdAt - время создания таска в формате timestamp.
const title = $input.first().json.body.title;

return { 
  json: {
    title,
    complete: false,
    createdAt: Date.now()
  } 
}

В результате узел вернёт объект с нужными полями.


[
  {
    "title": "First Task",
    "complete": false,
    "createdAt": 1756098494025
  }
]

Обратите внимание, что узлы всегда отдают массив объектов, даже если в массиве один объект.

Третий узел - MongoDB

Настройка подключения (Credentials) к базе данных MongoDB сводится к указанию строки подключения и имени базы данных в соответствующих полях.

img3.png

Настройки узла MongoDB:

  • Resource: Document
  • Operation: Insert
  • Collection: tasks
  • Fields: title, complete, createdAt

img3.png

Если запустить этот узел, то он запишет в базу данных документ с полями title, complete и createdAt.

Просмотрите результат выполнения узла MongoDB в интерфейсе Compass.

img4.png

Четвертый узел - Respond to Webhook

Последний узел отвечает на HTTP запрос, который пришёл в первый узел Webhook.

img5.png

Он передаст в ответе первому узлу Webhook данные, которые вернул узел MongoDB.

[
  {
    "title": "First Task",
    "complete": false,
    "createdAt": 1756098494025,
    "_id": "68abf79d10644334ee0f73d5",
    "id": "68abf79d10644334ee0f73d5"
  }
]

Тестируем полный сценарий через Postman

Создайте новый запрос в Postman.

Метод: POST URL (замените на ваш): https://bogutski.up.railway.app/webhook/todo

Body (raw, JSON):

{
  "title": "First Task"
}

Отправьте запрос.

Я получил ответ:

[
  {
    "title": "Learn JavaScript",
    "complete": false,
    "createdAt": 1756100904162,
    "_id": "68abf92810644334ee0f73d6",
    "id": "68abf92810644334ee0f73d6"
  }
]

img6.png

Если все прошло успешно, то в базе данных MongoDB появится новый документ с данными таска.

img7.png

Создайте ещё несколько тасков через Postman, чтобы убедиться что всё работает.

Если что-то пошло не так, проверьте настройки узлов и подключение к базе данных.