
Ches
07.04.2017
20:41:17
всем привет, можете подсказать как быстрее прокачаться в ноде? работаю в конторке, пишем проект на реакте, хотелось бы бек подучить) знаю основы, посмотрел некоторые курсы, нужна практика) возможно есть лучше варианты чем просто взять какой нибудь маленький проект и постараться его сделать одному
т.к будет много вопросов, все затянется и тд

Vadim
07.04.2017
20:44:51
а по-другому что-то выучить сложно
на все вопросы может ответить книги/stackoverflow/курсы/гугление, чтение исходников
находишь парочку норм проектов открытых и начинаешь писать свой, посматривая на норм варианты

Google

Ches
07.04.2017
20:58:01
уверен что можно учиться эффективнее)
у кого нибудь)

Vadim
07.04.2017
21:03:51
найми ментора

Felix
08.04.2017
01:36:22

Alexander
08.04.2017
03:11:57

Mikhail
08.04.2017
06:29:47

Ilnur
08.04.2017
08:16:12
Опыт получать, да, только исходники, мануалы и грабли. Но если бы было место где можно получить базовые формализованные знания было бы еще круче.

Таймураз
08.04.2017
09:07:44

Ilnur
08.04.2017
09:13:06

Таймураз
08.04.2017
09:14:45

Ilnur
08.04.2017
09:20:02
Тут ничего особого нет
Ну попробуй реализовать на досуге "Алгоритм вычисления спариваний Вейля и Тейта", которые являются базовыми для нашей реальности, поседеешь)

Таймураз
08.04.2017
09:21:08

Google

Таймураз
08.04.2017
09:21:32

Ilnur
08.04.2017
09:22:19
А это ты каждый день не явно используешь

Таймураз
08.04.2017
09:22:52

Ilnur
08.04.2017
09:23:06
Ну вот и я про это же

Таймураз
08.04.2017
09:24:16
Ну вот и я про это же
Базовые формализованные- документация
Если ты так хорош в базисе, то освоить стримы, сокеты, и прочее из стандартных модулей ноды тебе будет раз плюнуть

Ilnur
08.04.2017
09:34:09

Таймураз
08.04.2017
09:35:45
Некоторые специфичные вещи до сих пор реализуются всеми по-своему, тут несколько человек думали над общим решением
Например, логика работы http и сокет запросов чтобы контроллерами одинаково обрабатывалась

Ilnur
08.04.2017
09:41:25
Еще поверх линтер настроить, чтобы по пальцам бил. В последнем не вижу проблем если прописать декораторы.

Таймураз
08.04.2017
09:42:36

Mikhail
08.04.2017
13:38:23
всем привет. сделал свой фреймворк для создания ботов ВК на основе лонгпула. буду благодарен конструктивной критике. ? спасибо.
http://github.com/bifot/node-vk-bot-api/

Ivan
08.04.2017
13:53:54
Откуда вы лезете?

Zaur
08.04.2017
14:01:17
Идея для нового бота: сделать так чтобы бот под каждым первым сообщением только что прибывших людей показывал кнопки +/-. Если минусов набирается определенное коливество - сразу бан, и не придется ждать админов группы :)

Mikhail
08.04.2017
14:10:59
Команда боту

Zaur
08.04.2017
14:11:29

Ivan
08.04.2017
14:12:37

Mikhail
08.04.2017
14:12:37

Google

Mikhail
08.04.2017
14:12:55

Таймураз
08.04.2017
14:29:43
Ребят, как запретить запросы с другого домена на мой?
В Access-Control-Allow-Origin прописал свой домен- ничего не дало

Paul
08.04.2017
14:32:43
/stat@combot

Combot
08.04.2017
14:32:43
combot.org/chat/-1001041204341

Pavel
08.04.2017
15:13:15

Таймураз
08.04.2017
15:22:01

Pavel
08.04.2017
15:25:05
если тебе для браузеров, то проверь есть ли заголовок
Access-Control-Allow-Credentials
он должен быть равен "true"
хотя по идее - CORS вообще не должны работать по умолчанию

=_=
08.04.2017
18:21:39
Привет, кто-нибудь работал с миграциями в sequlize? Использовал umzug?
Я вот читаю про это и не могу понять одного. Миграции должны выполняться последовательно, одна применятся к предыдущей и так далее. Каждая миграция хранится в отдельном файле. Если я хочу зачекаутить какой-то старый коммит и привести базу данных к схеме, которая соответствует этому коммиту, я ведь не смогу последовательно откатить все миграции до состояния этого коммита. Потому что файлов миграций, которые были добавлены после этого коммита не будет существовать после чекаута.

=_=
08.04.2017
18:28:44
можно конечно сначала сделать реверт всех миграций до того коммита, а потом сделать чекаут в VCS
но это неудобно потому что надо смотреть до какой конкретной миграции надо откатываться

Vint
08.04.2017
19:44:17

=_=
08.04.2017
19:45:09
понятно

Ches
08.04.2017
19:47:36
может кто объяснить как запустить node приложение на хероку? вопрос по Procfile и npm командам

Danil
08.04.2017
19:48:11
какое приложение?

Ches
08.04.2017
19:48:53
react c нодой
что то не собирается там

Google

Ches
08.04.2017
19:49:06
наверное с этими командами намудрил

Admin
ERROR: S client not available

Danil
08.04.2017
19:50:27
ошибка какая?
выхлоп кинь

Ches
08.04.2017
19:50:56
у меня залита папка с проектом реакта, и в ней папка с сервером ноды. как я понимаю хероку запускает package.json корневой сразу
в Procfile команда
web: sh -c 'cd ./server/ && exec npm i && exec node app.js'
нагуглил ее)

Danil
08.04.2017
19:52:29
а, у тебя сервер в отдельной папке

Ches
08.04.2017
19:52:52
проект вроде собирается, но ничего не отображается потом в браузере, как я понимаю из за того что серверные npm модули не установлены

Danil
08.04.2017
19:53:18
в любом случае нужен выхлоп из git push heroku master


Ches
08.04.2017
19:54:04
$ git push heroku master
Counting objects: 3, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (3/3), done.
Writing objects: 100% (3/3), 348 bytes | 0 bytes/s, done.
Total 3 (delta 2), reused 0 (delta 0)
remote: Compressing source files... done.
remote: Building source:
remote:
remote: —---> Node.js app detected
remote:
remote: —---> Creating runtime environment
remote:
remote: NPM_CONFIG_LOGLEVEL=error
remote: NPM_CONFIG_PRODUCTION=false
remote: NODE_VERBOSE=false
remote: NODE_ENV=production
remote: NODE_MODULES_CACHE=true
remote:
remote: —---> Installing binaries
remote: engines.node (package.json): unspecified
remote: engines.npm (package.json): unspecified (use default)
remote:
remote: Resolving node version 6.x via semver.io...
remote: Downloading and installing node 6.10.2...
remote: Using default npm version: 3.10.10
remote:
remote: —---> Restoring cache
remote: Loading 2 from cacheDirectories (default):
remote: - node_modules
remote: - bower_components (not cached - skipping)
remote:
remote: —---> Building dependencies
remote: Installing node modules (package.json)
remote: Running heroku-postbuild
remote:
remote: > my-react-starter-pack@0.1.0 heroku-postbuild /tmp/build_2cbe27a 1c7ec69f6e511c9062f40f1ea
remote: > npm run build && sh -c 'cd ./server/ && exec npm i && exec node app.js'
remote:
remote:
remote: > my-react-starter-pack@0.1.0 build /tmp/build_2cbe27a1c7ec69f6e5 11c9062f40f1ea
remote: > node scripts/build.js
remote:
remote: Creating an optimized production build...
remote: Compiled successfully.
remote:
remote: File sizes after gzip:
remote:
remote: 171.72 KB build/static/js/main.f421d2fe.js
remote: 229 B build/static/css/main.59a7a2f2.css
remote:
remote: The project was built assuming it is hosted at the server root.
remote: To override this, specify the homepage in your package.json.
remote: For example, add this to build it for GitHub Pages:
remote:
remote: "homepage": "http://myname.github.io/myapp",
remote:
remote: The build folder is ready to be deployed.
remote: You may also serve it locally with a static server:
remote:
remote: npm install -g pushstate-server
remote: pushstate-server build
remote: open http://localhost:9000
remote:
remote: chat-node@1.0.0 /tmp/build_2cbe27a1c7ec69f6e511c9062f40f1ea/serve r
remote: ├─┬ cors@2.8.3
remote: │ ├── object-assign@4.1.1
remote: │ └── vary@1.1.1
remote: ├─┬ express@4.15.2
remote: │ ├─┬ accepts@1.3.3
remote: │ │ ├─┬ mime-types@2.1.15
remote: │ │ │ └── mime-db@1.27.0
remote: │ │ └── negotiator@0.6.1
remote: │ ├── array-flatten@1.1.1
remote: │ ├── content-disposition@0.5.2
remote: │ ├── content-type@1.0.2
remote: │ ├── cookie@0.3.1
remote: │ ├── cookie-signature@1.0.6
remote: │ ├─┬ debug@2.6.1
remote: │ │ └── ms@0.7.2
remote: │ ├── depd@1.1.0
remote: │ ├── encodeurl@1.0.1
remote: │ ├── escape-html@1.0.3
remote: │ ├── etag@1.8.0
remote: │ ├─┬ finalhandler@1.0.1
remote: │ │ ├── debug@2.6.3
remote: │ │ └── unpipe@1.0.0
remote: │ ├── fresh@0.5.0
remote: │ ├── merge-descriptors@1.0.1
remote: │ ├── methods@1.1.2
remote: │ ├─┬ on-finished@2.3.0
remote: │ │ └── ee-first@1.1.1
remote: │ ├── parseurl@1.3.1
remote: │ ├── path-to-regexp@0.1.7
remote: │ ├─┬ proxy-addr@1.1.4
remote: │ │ ├── forwarded@0.1.0
remote: │ │ └── ipaddr.js@1.3.0
remote: │ ├── qs@6.4.0
remote: │ ├── range-parser@1.2.0
remote: │ ├─┬ send@0.15.1
remote: │ │ ├── destroy@1.0.4
remote: │ │ ├─┬ http-errors@1.6.1
remote: │ │ │ └── inherits@2.0.3
remote: │ │ └── mime@1.3.4
remote: │ ├── serve-static@1.12.1
remote: │ ├── setprototypeof@1.0.3
remote: │ ├── statuses@1.3.1
remote: │ ├─┬ type-is@1.6.15
remote: │ │ └── media-typer@0.3.0
remote: │ └── utils-merge@1.0.0
remote: ├─┬ socket.io@1.7.3
remote: │ ├── debug@2.3.3
remote: │ ├─┬ engine.io@1.8.3
remote: │ │ ├── base64id@1.0.0
remote: │ │ ├── debug@2.3.3
remote: │ │ ├─┬ engine.io-parser@1.3.2
remote: │ │ │ ├── after@0.8.2
remote: │ │ │ ├── arraybuffer.slice@0.0.6
remote: │ │ │ ├── base64-arraybuffer@0.1.5
remote: │ │ │ ├── blob@0.0.4
remote: │ │ │ └── wtf-8@1.0.0
remote: │ │ └─┬ ws@1.1.2
remote: │ │ ├── options@0.0.6
remote: │ │ └── ultron@1.0.2
remote: │ ├─┬ has-binary@0.1.7
remote: │ │ └── isarray@0.0.1
remote: │ ├── object-assign@4.1.0
remote: │ ├─┬ socket.io-adapter@0.5.0
remote: │ │ └── debug@2.3.3
remote: │ ├─┬ socket.io-client@1.7.3
remote: │ │ ├── backo2@1.0.2
remote: │ │ ├── component-bind@1.0.0
remote: │ │ ├── component-emitter@1.2.1
remote: │ │ ├── debug@2.3.3
remote: │ │ ├─┬ engine.io-client@1.8.3
remote: │ │ │ ├── component-emitter@1.2.1
remote: │ │ │ ├── component-inherit@0.0.3
remote: │ │ │ ├── debug@2.3.3
remote: │ │ │ ├── has-cors@1.1.0
remote: │ │ │ ├── parsejson@0.0.3
remote: │ │ │ ├── parseqs@0.0.5
remote: │ │ │ ├── xmlhttprequest-ssl@1.5.3
remote: │ │ │ └── yeast@0.1.2
remote: │ │ ├── indexof@0.0.1
remote: │ │ ├── object-component@0.0.3
remote: │ │ ├─┬ parseuri@0.0.5
remote: │ │ │ └─┬ better-assert@1.0.2
remote: │ │ │ └── callsite@1.0.0
remote: │ │ └── to-array@0.1.4
remote: │ └─┬ socket.io-parser@2.3.1
remote: │ ├── component-emitter@1.1.2
remote: │ ├─┬ debug@2.2.0
remote: │ │ └── ms@0.7.1
remote: │ └── json3@3.3.2
remote: └── underscore@1.8.3
remote:
remote:
remote: —---> Caching build
remote: Clearing previous node cache
remote: Saving 2 cacheDirectories (default):
remote: - node_modules
remote: - bower_components (nothing to cache)
remote:
remote: —---> Build succeeded!
remote: —---> Discovering process types
remote: Procfile declares types -> web
remote:
remote: —---> Compressing...
remote: Done: 35.5M
remote: —---> Launching...
remote: Released v7
remote: https://mypollingsocketapp.herokuapp.com/ deployed to Heroku
remote:
remote: Verifying deploy.... done.
To https://git.heroku.com/mypollingsocketapp.git
6d82691..ddcbebe master -> master


Danil
08.04.2017
19:56:26
а в экспрессе ты статику отдаешь?

Ches
08.04.2017
19:57:22
ага

Danil
08.04.2017
19:58:48
не вижу причин, почему он может не работать :)

Кирилл
08.04.2017
20:00:36


Danil
08.04.2017
20:00:40
посмотри билдпак под реакт
как вариант можешь попробовать
web: npm i ./server/ && node ./server/app.js

Zaur
09.04.2017
09:33:38
всем привет, народ посдкажите как лучше сделать: Есть объект у которого есть основные и расширенные параметры. Объекты с расширенными параметрами создаются не часто. думаю создать в mysql отдельную таблицу для расширенных параметров, и создавать там записи только при необходимости, а с записью из основной таблицы связывать через id. Думается мне, что это ускорит доступ к основной таблице. Вообще такая практика используется? Или можно не заморачиваться и все параметры хранить в одной таблице и в полях где нет данных просто оставить NULL ?

arts
09.04.2017
09:35:03
Зависит от того, насколько часто основные используются без расширенных.

Google

Zaur
09.04.2017
09:38:17

arts
09.04.2017
09:39:16
Тогда лучше вынести в отдельную таблицу, имхо.

Zaur
09.04.2017
09:42:29
а нет наврал, в среднем за день ~7000 обращений

Никита
09.04.2017
10:32:14
У меня такое ощущение, что в маркдаун никто не умеет.

Aleksey
09.04.2017
10:34:35

Zaur
09.04.2017
10:55:33

Дмитрий
09.04.2017
10:58:13
Вот сейчас обидно было

Kelin
09.04.2017
11:02:42

Никита
09.04.2017
13:31:51
Сделал как угодно, накрутил сверху санитайзер, и вуаля.