
Андрей
15.05.2017
22:08:40
Можно и экспресс юзать
Вообще все равно

arts
15.05.2017
22:09:12
За nginx'ом может использоваться что угодно, в том числе и экспресс.

Андрей
15.05.2017
22:09:38
Согласен

Google

Rafael
16.05.2017
04:53:46
Introduction Documentation | Strapi - Node.js Framework based on Koa
http://strapi.io/documentation
Что про вот это скажите?

Lulz
16.05.2017
05:14:32
Привет! Столкнулся с такой проблемой EPERM: operation not permitted, rename. Как решить? ведь с помощью ноды я могу удалять файлы, а переименовать почему-то просит "права"

arts
16.05.2017
05:22:49
Уверен, что перемещаешь в тот же каталог?
Хотя... Это больше похоже на фс, смонтированную в ro

Lulz
16.05.2017
05:26:31

arts
16.05.2017
05:28:56
Readonly

Lulz
16.05.2017
05:30:08
Readonly
не, в фс я могу например перезаписать файл, удалить

Кирилл
16.05.2017
05:34:09
Проверь права на файл
А так эта штука должна по идее сильно облегчать жизнь когда тебе сервер нужен только в контексте предоставляемом им апи. Полезная штука, да.

arts
16.05.2017
05:50:51

Google

Lulz
16.05.2017
05:51:34
Именно этот файл?
там кажись ошибка в том, что он пытается все это асинхронно сделать, у меня должен скрипт убить процесс, переименовать файл и потом удалить старый файл
попробовал чисто в той же директории сделать со статикой, там все без проблем

Кирилл
16.05.2017
05:56:20
Так делай синхронно тогда

Lulz
16.05.2017
05:57:57
Синхронно делаю, но все это внутри exec()

Rafael
16.05.2017
06:13:59

Кирилл
16.05.2017
06:23:40
Это под виндой?

Lulz
16.05.2017
06:33:10

Кирилл
16.05.2017
06:33:46
Ух

shadowjack
16.05.2017
06:59:44
Ну все правильно, пока процесс жив ничего не можешь сделать с файлом

Lulz
16.05.2017
07:00:18
а если он в процессах висит то ошибка process busy что-то там

shadowjack
16.05.2017
07:03:51
Так я понимаю exec не успевает отработать. Твой exec это child_process.exec?

Lulz
16.05.2017
07:04:11
сейчас поменял на sync-exec

shadowjack
16.05.2017
07:04:51
И все равно не пашет?

Lulz
16.05.2017
07:06:11
неа
я даже пробовал сеттаймаут сделать на ренейм 5с
у меня так скрипт работает, файл принимает и запускает другой скрипт через exec('node scriptRename') , а там уже этот скрипт идет
а если я отдельно, сам запускаю то ренейм работает
ну...короче вроде сделал
откуда я запускаю скрипт ставлю setTimeout (омг переделать срочно) и запускаю

Google

Кирилл
16.05.2017
07:21:16
Работает - не трогай

Lulz
16.05.2017
07:28:59
короче, куда легче было тупо к ОС обратиться и передать ей команды, лол
даже второй скрипт не нужен П.С AESY

Кирилл
16.05.2017
07:59:41
Ну вообще это хорошая практика

Dmitry ?
16.05.2017
08:05:29
Пробую использовать knex, правильно понимаю, что нормально upsert нельзя сделать?

Сергей
16.05.2017
08:05:43

Dmitry ?
16.05.2017
08:05:50
Отстой(

Сергей
16.05.2017
08:05:52
я юзаю sequelize тож самая трабла

Dmitry ?
16.05.2017
08:06:08
В sequelize есть же апсерт
findOrCreate
Сори, ошибся. Это же не апсерт)
С findOrCreate просто чуть проще его сделать

Dmitry ?
16.05.2017
08:09:39
Последний год писал бекенд на Elixir, там в ecto есть удобный insert_or_update, теперь неуютно без этого

Anton
16.05.2017
08:21:21
И как оно, на ноде после элексира? зачем вообще переходить на ноду.

Dmitry ?
16.05.2017
08:24:03
Элексир очень понравился. Нода на мой взгляд больше подходит для быстрого создания простых rest api.

Alexandr
16.05.2017
08:40:17
а элексир для чего?

Lulz
16.05.2017
08:41:35
как передать 4 команды сразу? п.с через & и обернуть желательно в сеттаймаут, лол

Dmitry ?
16.05.2017
08:43:02

shadowjack
16.05.2017
08:57:13
Проблема что вакансий на эликсир нет почти

Google

Сева
16.05.2017
10:55:42
котаны, а какой у нас оверхед накладывает транзация в постгрес для одиночного запроса? ну т.е. мы делаем обычный insert, или делаем его обернутым в транзакцию.
думаю о том, чтобы в своей ORM-ке (форкнутый bookshelf) делать транзакцию на каждое изменение в базе (на чтение, понятно, не надо), пытаюсь понять, насколько себе рою яму

Nikita
16.05.2017
10:57:45
1 запрос сам по себе атомарен.

Сева
16.05.2017
10:59:39
логично. вопрос в другом: внутри хуков (beforeCreate, afterCreate, например) очень хочется делать дополнительные транзакции
в некоторых ситуациях

Admin
ERROR: S client not available

Сева
16.05.2017
11:00:10
но чтобы это в целом было атомарным, надо начинать транзакцию ДО операции insert, не зная, будет ли выполнен еще один запрос.

Vladimir
16.05.2017
11:00:47

Nikita
16.05.2017
11:01:40

Vladimir
16.05.2017
11:03:19
Полагаю что как минимум в случае вложенных запросов

Сева
16.05.2017
11:05:10
соответственно - вопрос в том, в чем будет заключаться оверхед при использовании START TRANSACTION; INSERT; COMMIT TRANSACTION; в 3 запроса в сравнении с обычным INSERT;. Оверхед интересует только на уровне БД, инстансы ноды отмасштабировать не проблема. Особенно интересно, будет ли он линейным (O(1)) или еще каким-то.
я, к сожалению, не очень много работал с постгресом, больше с всякими нереляционками, и сходу ответ на этот вопрос не нагуглил, только обсуждение в ишуях постгреса про пустые коммиты и ленивое исполнение

Anton
16.05.2017
11:10:21
Если у тебя там какая-то комплексная логика, а не просто инсерт, то заведи функцию, и будет тебе атомарный блок, и один запрос вместо трех.

Сева
16.05.2017
11:26:07
опа, чирик. я нашел ответ на свой вопрос
https://www.postgresql.org/docs/9.1/static/tutorial-transactions.html
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.
значит, какие-то библиотеки, достаточно значимые, чтобы их учитывать в документации postgres, так делают.
логично будет предположить, что настолько значимые библиотеки успешно используются в продакшне


Rafael
16.05.2017
13:16:04
соответственно - вопрос в том, в чем будет заключаться оверхед при использовании START TRANSACTION; INSERT; COMMIT TRANSACTION; в 3 запроса в сравнении с обычным INSERT;. Оверхед интересует только на уровне БД, инстансы ноды отмасштабировать не проблема. Особенно интересно, будет ли он линейным (O(1)) или еще каким-то.
я, к сожалению, не очень много работал с постгресом, больше с всякими нереляционками, и сходу ответ на этот вопрос не нагуглил, только обсуждение в ишуях постгреса про пустые коммиты и ленивое исполнение
Менеджер транзакций старается разрулить их так, что обращение к разным данным была максимально эффективным
Т.е если транзакции одновременно не меняют одни и теже данные, то не думаю, что тебя это будет тормозить сильно

Kelin
16.05.2017
13:27:47
В кой-то веки решил полистать чатики, а @Fl0pZz просто везде
А говорил, что завязал с социо*кхм* ^^

Rafael
16.05.2017
13:29:24

Google

Kelin
16.05.2017
13:29:56

Rafael
16.05.2017
13:30:16
Энто где
https://telegram.me/joinchat/Be4rsT3Uyr1TjmSlrRc77g

Kelin
16.05.2017
13:30:58
Почему-то я не удивлен))))

Dmitrii
16.05.2017
16:36:22

Сева
16.05.2017
16:37:06

Konstantin
16.05.2017
17:09:31
Зачем транзакцию на каждый апдейт? Код настолько размазан?
Не проще расширить модели методами где нужны транзакции?

Denis
16.05.2017
22:00:13
А кто дружил Swagger и JSON API?
Там похоже фундаментальная несовместимость
cc @NordLuf

Evgeny
16.05.2017
22:01:38
Хм.Чоёта вдруг?
Я на этой невместимости сейчас весь проект сделал

Vitaliy
16.05.2017
22:08:22
А кто дружил Swagger и JSON API?
ну-ка расскажи. а то вот как-то все идеально у меня
более того, я использую https://github.com/swagger-api/swagger-node чтобы вывернуть цикл разработки и иметь единственную точку для документации, схем валидации, моков

Denis
16.05.2017
22:11:15
Так
JSON API = http://jsonapi.org, а не API в формате JSON