Щоб не додавати дані самостійно, ми можемо взяти готовий файл з даними(.csv), та імпортувати це в нашу таблицю.
NodeRed
На початку, в середовищі NodeRed, встановлюємо пакет під назвою "node-red-contrib-re-postgres". Надалі, потрібно створити такі вузли: http-in > function > base64 > function > csv > function > postgres(з'являється в наслідок завантаженого пакету) > http-response.
В http-in вибираємо метод POST, та відмічаємо Accept file uploads.
У функції пишемо код, який записаний на малюнку. Оскільки нам приходить масив, вибираємо перший елемент([0]), бо це той файл який ми завантажуємо. Перетворюємо дані на строку, та методом slice вирізаємо інформацію яке несе тип файлу, залишаючи тільки закодовані данні.
Вибираємо вузол Base64, у властивостях дописуємо payload, та вибираємо дію ConvertBuffer<->Base64
В наступному вузлі(це function), те що приходить після Base64 перетворюємо на строку
Та передаємо до вузла csv.В результаті чого, ми отримаємо на виході json дані які можемо передати в таблицю.
Формуємо запит для нашого postgresql. Щоб передати всі данні з нашого файлу в таблицю, ми створюємо велику строку з цими даними, аби покласти їх як значення в запитиі до таблиці. Важливий момент, оскільки postgresql має строгу типізацію, порядковість написання даних має значення. Отже, назва значення стовбця має мати в запиті таку ж порядковість, як і сам стовбець.
Далі вибираємо наш вузол postgresql, в ньому потрібно вказати нашу базу дaних яку створили, та відмітити Receive query output.
І в кінці додаємо наш http-response
UI
На UI додаємо віджет FILEPICKER, та в його налаштуванні вибираємо формати(Data Format) - Base64.
Далі створюємо наш API запит. Там де з права вибирали віджети натискаємо Explorer > Біля API/JS натискаємо на полюс > Вибираємо New Blank API > відкривається вікно з заповненням наших даних для запиту. Записуємо все, згідно того, що на фото
Коли данні заповнили, згідно того, що на фото, можемо натискати на створений Filepicker, та завантажувати наш csv файл. Так данні, які були у файлі додаються в БД.
Надалі, щоб метод завантаження був універсальним, створюємо примітку в якій буде вказана інформація як має виглядати .csv файл. Там буде записано бажаний розмір файлу, та колонки які мусять бути в таблиці, щоб користуватись даним функціоналом.
Top comments (0)