
я люблю грин дей
18.03.2017
17:51:30

AlexMist
18.03.2017
17:52:25
Ды вот , как то так и думал. Реально же получается, что они на каждый роутер создаются ?
В их примере
https://github.com/sequelize/express-example

Google

я люблю грин дей
18.03.2017
17:53:36
Они создаются один раз, а в каждый роут идут по ссылке

AlexMist
18.03.2017
17:54:10
https://github.com/sequelize/express-example/blob/master/routes/users.js
var models = require('../models');
в каждом роуте

я люблю грин дей
18.03.2017
18:20:51

Алексей
18.03.2017
18:33:07

AlexMist
18.03.2017
18:35:44
Спасибо большое! Так и подумал сначала, но что то сомнения закрались ?
За это получается сам движок отвечает ?
Прсто про это нормально, мало где написано. Хотя если бездумно кодить )))

Алексей
18.03.2017
18:36:41

AlexMist
18.03.2017
18:37:27
В сам модуль, и по идее если его 100 раз импортировать то он 1 раз исполнится ?

Алексей
18.03.2017
18:37:50
можно кстати ещё влезть во фронтенд (например скачать какой-нибдуь проект) и посмотреть какой код webpack для модулей генерирует
модуль - это просто кусок кода

Google

Алексей
18.03.2017
18:38:31
который может установить объект module.exports
а может не устанавливать и просто выполнить некий код
А вообще я удивлён, что для ноды почти не практикуется такая штука как dependency injection. На ES6 это довольно просто делается и это позволило бы избавиться от такой проблемы: require('../../../../../my-module')

Sergey
18.03.2017
18:45:52
Подскажите пжлст, в чем может быть проблема:
Копирую 3000 файлов из одной диры в другую, перед этим сравниваю их имена с записями в бд и переименовываю. Все очень медленно делается пять файла в минуту. Почему?
Сделал то же самое со 100 файлами, все это сделалось за меньше минуты

Alex
18.03.2017
18:47:54
кстати да
а что вы делаете на ноде с проблемой require('../../../../../my-module')?
в вебпаке там алиасы есть
Sergey код пожаласта

Sergey
18.03.2017
18:49:07
150 строк, сейчас на гист закину

Alex
18.03.2017
18:49:29
ок

Sergey
18.03.2017
18:51:22
https://gist.github.com/SergProduction/84ecf93b85c0857f29429d98a355a2c9
Json там очень большой, я его кусками из файла читаю, на него можно не обращать внимания

Kanat
18.03.2017
18:53:46
почему var в начале кода?

Valdemar
18.03.2017
18:53:48

Kanat
18.03.2017
18:53:56
потом es6 дальше

Sergey
18.03.2017
18:54:06
Проверь. Не в этом проблема)

Alex
18.03.2017
18:54:39
let dirArr = fs.readdirSync( path.join(__dirname, 'base/jpg/') )
мб тут?
если там 5к жпегов

Sergey
18.03.2017
18:55:09
Ааа
Может

Google

Sergey
18.03.2017
18:55:21
Но думаю нет

Alex
18.03.2017
18:55:25
хотя...
он же файлнеймы читает
вообще --inspector творит просто магию

Sergey
18.03.2017
18:58:02
Сто файлов он обрабатывает меньше чем за минуту
3к файлов, я запустил 10 мин назад, только 300 обработал

Alex
18.03.2017
18:59:20
глянь в htop
мб память скушалась

Sergey
18.03.2017
19:00:18
Не скушалась, вроде же нода не может задействовать всю память. Точно не знаю, поэтому и спрашиваю

Alex
18.03.2017
19:00:38
baseArray.forEach( (row, i, arr) => {
fileName.forEach( (file, z) => {

Sergey
18.03.2017
19:00:51
Может быть, есть способы задействовать всю оперативу
?

Alex
18.03.2017
19:01:42
вставь на вызове equalBase вывод длины baseArray

Sergey
18.03.2017
19:02:30

Alex
18.03.2017
19:02:43
там цикл в цикле

Sergey
18.03.2017
19:03:00
И Того 220к * 3к

Alex
18.03.2017
19:03:06
а задача-то вообще какая?

Sergey
18.03.2017
19:03:55
там цикл в цикле
Естественно, а и иначе как сравнить имя файла с записями в бд(baseArray)

Alex
18.03.2017
19:04:22
чето тут не бд, а json

Sergey
18.03.2017
19:04:35
Ага

Alex
18.03.2017
19:05:31
https://www.npmjs.com/package/lowdb

Google

Alex
18.03.2017
19:06:53
если там 220*3 кк, то чтение json целиком и парсинг могут оказаться значительно быстрее, чем гоняние массивов
хотя... без индексов anyway тормоза будут
это же seqScan

Sergey
18.03.2017
19:09:54
Там json на 40мб я сперва пробывал его целиком прочесть, нода выкинула ошибку о том что память закончилась, теперь я читаю кусками через потоки

Alex
18.03.2017
19:10:31
readJsonСhunk -> insert
manipulating
delete * from table
перебор на 220 строк это ужс что

Sergey
18.03.2017
19:19:22
Может быть есть способы задействовать всю оперативу?

Kanat
18.03.2017
19:21:06
Не сдавайся, ответ совсем рядом.

Alex
18.03.2017
19:24:36
оператива не даст тебе нормальный поиск)
/stat@combot

Admin
ERROR: S client not available

Combot
18.03.2017
19:25:48
combot.org/chat/-1001041204341

Sergey
18.03.2017
19:25:54
С поиском все нормально, 100 картинок копируются меньше чем за минуту с той же базой.

Alex
18.03.2017
19:29:03
эм
ну лан)
или брать дерево
но деревьев будет несколько судя по количеству сравнений

Sergey
18.03.2017
19:29:33
Ммм

Alex
18.03.2017
19:31:53
row[5] == file.date &&
row[4] == file.show &&
row[3].match(/\d+/)[0] == file.id
субд такое сделает за мгновение
+ если ты ищешь конкретно по row[3].match - стоит положить это доп. элементом в массив?

Сергей
18.03.2017
19:33:48

Google

Sergey
18.03.2017
19:34:48
Да, придется

Сергей
18.03.2017
19:35:21
я когда писал утилитку в электрон так и делал

Sergey
18.03.2017
19:35:24
Не хотелось задействовать бд, но вижу что здесь она необходима

Alex
18.03.2017
19:36:35
можно и деревьями, но надо в деревья уметь:)

Сергей
18.03.2017
19:37:44
а какая разница, если данные в памяти не помещаются?

Alex
18.03.2017
19:40:39
там 220к строк
поиск идет по date, show (не знаю че там, мб буль?) и fileid
все три легко кастятся в int
три дерева на 220к листьев влезут в ram
хотя тут не совсем дерево-то
ну короче алгоритмы и структуры затащщат если надо,

Сергей
18.03.2017
19:42:23
а вообще ты мог выкидывать копирование в отдельные процессы. было бы в разы быстрее

Yan
18.03.2017
19:48:58
ребят, еще вопросик
по ресту модифаить отдельные доки лучше через пут или патч?
я почитал, используются оба, но вот бест практис не увидел, в каких случаях какой запрос выбирать

Сергей
18.03.2017
19:51:02

Sergey
18.03.2017
19:52:02
сделал npm install amazon-cognito-identity-js, пытаюсь запустить следующий скрипт с помощью node scriptname.js
ошибка TypeError: Cannot read property 'AuthenticationDetails' of undefined
Что я не так делаю?
var AWSCognito = require('amazon-cognito-identity-js');
var authenticationData = {
Username : '123456n@yandex.ru',
Password : 'thai4EengG2@',
};
var authenticationDetails = new AWSCognito.CognitoIdentityServiceProvider.AuthenticationDetails(authenticationData);
https://github.com/aws/amazon-cognito-identity-js

Yan
18.03.2017
19:57:18

Alex
18.03.2017
20:02:55
Sergey а сколько там ram?
я сейчас json на 180Мб на 400к+ строк распарсил за 7 секунд на 1 гб оперативы
зохавало 700-800 Мб примерно
даже меньше
632Мб

Sergey
18.03.2017
20:14:45

Alex
18.03.2017
20:15:23
да, там уже гига вряд ли будет лишнего
тогда точно через субд - они умеют хорошо работать в условиях "не влазит в ram"

Sergey
18.03.2017
20:16:51
Дело в том, что я открываю диспечер задач, и вижу что нода даже половины оперативны не использует