arts
nginx
Anonymous
@artsdvatri он на экспресс репроксит или как это работает?
Anonymous
Нгинкс можно юзать как реверс прокси
arts
Да
Anonymous
Не вижу связь с экспрессом
Anonymous
то есть экспресс не используется?
Anonymous
Можно и экспресс юзать
Anonymous
Вообще все равно
arts
За nginx'ом может использоваться что угодно, в том числе и экспресс.
Anonymous
Согласен
kdm🇩🇰
Привет! Столкнулся с такой проблемой EPERM: operation not permitted, rename. Как решить? ведь с помощью ноды я могу удалять файлы, а переименовать почему-то просит "права"
arts
Уверен, что перемещаешь в тот же каталог?
arts
Хотя... Это больше похоже на фс, смонтированную в ro
arts
Readonly
kdm🇩🇰
Readonly
не, в фс я могу например перезаписать файл, удалить
kdm🇩🇰
Именно этот файл?
там кажись ошибка в том, что он пытается все это асинхронно сделать, у меня должен скрипт убить процесс, переименовать файл и потом удалить старый файл
kdm🇩🇰
попробовал чисто в той же директории сделать со статикой, там все без проблем
kdm🇩🇰
Синхронно делаю, но все это внутри exec()
kdm🇩🇰
вот в принципе весь скрипт
kdm🇩🇰
да) пожалуйста, не надо только начинать)
eahqzsr
Ну все правильно, пока процесс жив ничего не можешь сделать с файлом
kdm🇩🇰
а если он в процессах висит то ошибка process busy что-то там
eahqzsr
Так я понимаю exec не успевает отработать. Твой exec это child_process.exec?
kdm🇩🇰
сейчас поменял на sync-exec
eahqzsr
И все равно не пашет?
kdm🇩🇰
неа
kdm🇩🇰
я даже пробовал сеттаймаут сделать на ренейм 5с
kdm🇩🇰
у меня так скрипт работает, файл принимает и запускает другой скрипт через exec('node scriptRename') , а там уже этот скрипт идет
kdm🇩🇰
а если я отдельно, сам запускаю то ренейм работает
kdm🇩🇰
ну...короче вроде сделал
kdm🇩🇰
откуда я запускаю скрипт ставлю setTimeout (омг переделать срочно) и запускаю
kdm🇩🇰
короче, куда легче было тупо к ОС обратиться и передать ей команды, лол
kdm🇩🇰
даже второй скрипт не нужен П.С AESY
Dima
Пробую использовать knex, правильно понимаю, что нормально upsert нельзя сделать?
Dima
Отстой(
Sergey
я юзаю sequelize тож самая трабла
Dima
В sequelize есть же апсерт
Dima
findOrCreate
Dima
Сори, ошибся. Это же не апсерт)
Dima
С findOrCreate просто чуть проще его сделать
Dima
Последний год писал бекенд на Elixir, там в ecto есть удобный insert_or_update, теперь неуютно без этого
Anton
И как оно, на ноде после элексира? зачем вообще переходить на ноду.
Dima
Элексир очень понравился. Нода на мой взгляд больше подходит для быстрого создания простых rest api.
Alex 🗽👇
а элексир для чего?
kdm🇩🇰
хах не все так радужно оказалось)
kdm🇩🇰
как передать 4 команды сразу? п.с через & и обернуть желательно в сеттаймаут, лол
Dima
а элексир для чего?
Из-за легкого параллелизма и паттерн матчинга — для обработки данных
eahqzsr
Проблема что вакансий на эликсир нет почти
Vsevolod
котаны, а какой у нас оверхед накладывает транзация в постгрес для одиночного запроса? ну т.е. мы делаем обычный insert, или делаем его обернутым в транзакцию. думаю о том, чтобы в своей ORM-ке (форкнутый bookshelf) делать транзакцию на каждое изменение в базе (на чтение, понятно, не надо), пытаюсь понять, насколько себе рою яму
Nikita
1 запрос сам по себе атомарен.
Vsevolod
логично. вопрос в другом: внутри хуков (beforeCreate, afterCreate, например) очень хочется делать дополнительные транзакции
Vsevolod
в некоторых ситуациях
Vsevolod
но чтобы это в целом было атомарным, надо начинать транзакцию ДО операции insert, не зная, будет ли выполнен еще один запрос.
Nikita
Ну не всегда же
мм, пример?
Vladimir
Полагаю что как минимум в случае вложенных запросов
Vsevolod
соответственно - вопрос в том, в чем будет заключаться оверхед при использовании START TRANSACTION; INSERT; COMMIT TRANSACTION; в 3 запроса в сравнении с обычным INSERT;. Оверхед интересует только на уровне БД, инстансы ноды отмасштабировать не проблема. Особенно интересно, будет ли он линейным (O(1)) или еще каким-то. я, к сожалению, не очень много работал с постгресом, больше с всякими нереляционками, и сходу ответ на этот вопрос не нагуглил, только обсуждение в ишуях постгреса про пустые коммиты и ленивое исполнение
Anton
Если у тебя там какая-то комплексная логика, а не просто инсерт, то заведи функцию, и будет тебе атомарный блок, и один запрос вместо трех.
Vsevolod
опа, чирик. я нашел ответ на свой вопрос
Vsevolod
https://www.postgresql.org/docs/9.1/static/tutorial-transactions.html
Vsevolod
Note: Some client libraries issue BEGIN and COMMIT commands automatically, so that you might get the effect of transaction blocks without asking. Check the documentation for the interface you are using.
Vsevolod
значит, какие-то библиотеки, достаточно значимые, чтобы их учитывать в документации postgres, так делают.
Vsevolod
логично будет предположить, что настолько значимые библиотеки успешно используются в продакшне
Завтра
В кой-то веки решил полистать чатики, а @Fl0pZz просто везде
Завтра
А говорил, что завязал с социо*кхм* ^^
Завтра
Энто где
Завтра
Почему-то я не удивлен))))
Konstantin
Зачем транзакцию на каждый апдейт? Код настолько размазан?
Konstantin
Не проще расширить модели методами где нужны транзакции?
Denis
А кто дружил Swagger и JSON API?
Denis
Там похоже фундаментальная несовместимость
Denis
cc @NordLuf
Evgeny
Хм.Чоёта вдруг?