Доброе утро, чат!
Я тут вчерась случайно со служебного номера зашёл, чем вызвал неожиданное удивление... Ну ладно, бывает...
Но дело в другом... Сейчас я работаю в белгородском интернет-провайдере в стадии стартапа. Тянем оптику, короче говоря, а называемся "Альтернативные Коммерческие Сети", чтобы это не значило. Кстати и в сторону говоря, на роль маскота можно было бы выбрать либо чёрного лебедя, или не лебедя, а петуха, и не чёрного, а просто очень жаренного.
Дык вот, эта птица с маскота куда-то клюнула и внезапно свалилась на меня задача сделать правильно то, что сейчас делает скрипт из говна на повершелле. ЧСХ, сделать не только правильно, но и быстро...
Ну я и вспомнил про NodeStarterKit и всё заверте...
Короче, я сделал на WSL2 отдельную Ubuntu-20.04, куда поставил Nodejs, Postgres и склонировал форк с HowProgrammingWorks/NodejsStarterKit. Немножко поплясал по граблям, в очередной раз понял, что смотреть видеоуроки после плясок особо интересно, хоть и не так рационально, чем наоборот, но добился таки работающего прототипа API...
Теперь о задаче. У нас есть несколько внешних систем, являющихся источниками истины. Например, Netbox это про ip-адреса, сети, виланы, сетевое железо, абонентские терминалы и это вот всё. Ещё есть биллинг, мониторинг, база SQLlite с географией и, конечно, эксельные таблички. Часть этих систем имеют хорошее, годное, хорошо документированное REST API (например, Netbox), а у других вместо этого какой-то свой 3,5-колёсный велосипед (это я про биллинг).
И наконец, есть скрипт на повершелле, который брал из эксельного файлика данные, дергал Netbox за API, создавая или редактируя объекты там и генерировал скрипты для сетевого железа - микротика, цисок и OLT-GEPON
Тут хочу извинится за долгое вступление, но это контекст )
Теперь к делу. Значится, для выполнения запросов к внешним API я задействовал axios, добавив его require через константу internals в lib\dependencies. И теперь, пара десятков строк кода в api\netbox.js делает то же, что и две пары десятков файлов на повершелле.
Однако, у меня остались сомнения в правильности такого подключения третьесторонней библиотеки... Я обратил внимание, что в NodeStarterKit в версии для Impress'a, dependencies.js является частью Impress и непонятно - как юзать внешние либы там?
Второй вопрос касается базы данных. Мне надо где-то хранить токены от разных API для разных пользователей. Как это лучше сделать: через заведение ещё одной таблицы userTokens или через расширение полей существующей таблицы пользователей?