shoo
shoo
вот так делаю, неправильно ?
Igor
Лучше так не делать. Ты мутируешь данные. Слышал что нибудь про мутабельность и чистые функции? Попробуй создать новый объект с нужными данными и верни его
Igor
слышал, но использовал немного, щас попробую))
На хабре есть несколько статей на эту тему, если мне память не изменяет
shoo
toObject() сделай
elem.toObject() ?
Cenator 🐈
Реакт тема
shoo
allRooms
так это массив объектов, массив сделать объектм ?)
O.
А ты попробуй
O.
Может поможет
shoo
shoo
имутабельно ?
shoo
Может поможет
так он и не даёт, там же массив )
Anonymous
{ ...elem, messages: null } не подойдёт?
shoo
сделал копию объекта, вот что там, объясните что это за вотафак ))
shoo
V⚡️
все работает же
Cenator 🐈
{ ...elem, messages: null } не подойдёт?
Null не надо allRooms.map(({...newElem, messages}) =>
shoo
все работает же
в хроме тоже у меня работает )
V⚡️
shoo
в ноде тоже самое
скрин выше кинул )
O.
lean() в самом запросе
🖤
Ребят, посоветуйте, я в отчаянии: есть приложение со следующей файловой структурой. Server это собственно экспресс-роуты, там апиха, дб, и сейчас хочу прикрутить вебморду. Но получается какая-то дичь. Началось трахание на тему "я не вижу папку views в папке сервер", поправлю, но выглядит как-то не то. Как правильнее организовать проект? Может сделать корневое app.js, из которого вызывать сервер и которое будет отвечать за рендер? я вот вообще не архитектор(((
🖤
O.
что за lean ?)
http://blog.sandromartis.com/2016/05/08/mongoose-lean/
shoo
http://blog.sandromartis.com/2016/05/08/mongoose-lean/
так а почему он на фронт возвращает сразу объект без лишнего мусора ?)
Eugene
🤔ну норм тогда
Yurii
handlebars
ок, так когда ты вызываешь res.render у тебя ошибка, что views не там или что?
🖤
всякое бывало, пока проблема в том, что отдаёт вместо страницы просто строку home.hbs
🖤
но это вторичное, мне не нравится архитектура
Eugene
Ну засунь в сервер, станет удобнее?)))
🖤
Ну засунь в сервер, станет удобнее?)))
уже засунул и уже неудобно
🖤
хочу исправить, но не знаю, как
Cenator 🐈
Почему лучше не менять данные?
Потом отслеживать сложно
Алексей
Потом отслеживать сложно
А если не надо потом отслеживать? А если данных два гига?
Cenator 🐈
1) Я имел ввиду дебаг
🖤
console.log(__dirname)
В браузере - Error: /home/max/mngo-node/views/home.hbs: The partial head could not be found В коде сервера - hbs.registerPartials(__dirname + '../views/partials'); переменная. вызванная из сервера - /home/max/mngo-node/server
Cenator 🐈
Какая структура
🖤
вот такая жеж
Igor
Почему лучше не менять данные?
js не самый прозрачный язык в плане мутабельности. По этому проще отказаться от мутирования вообще, чем потом бегать и искать концы, а в конце концов окажется что ты передал объект по ссылке и в последствии дропнул из него поле, которое использовал дальше по коду
🖤
В браузере - Error: /home/max/mngo-node/views/home.hbs: The partial head could not be found В коде сервера - hbs.registerPartials(__dirname + '../views/partials'); переменная. вызванная из сервера - /home/max/mngo-node/server
Выдает ошибку что не может найти "куски" которые я импортировал в шаблон. Где искать куски я ему сказал. __dirname проверил.
Igor
нативных иснстрементов для глубокого копирования объектов вообще нет. И это расстраивает
Алексей
Cenator 🐈
С перфомансом все норм
🖤
Выдает ошибку что не может найти "куски" которые я импортировал в шаблон. Где искать куски я ему сказал. __dirname проверил.
при том, что есть уже другое приложение с handlebars и express, с другой структурой, там app.js запускается из папки приложения и работает, вот я и спрашиваю - может, структуру перестроить?
🖤
Да, перестроить
тогда как лучше? просто вынести сервер в корень?
Алексей
Никакой, лучше забыть про мутации
Радикализм какой-то И слишком смелое утверждение, имхо, что с производительностью всё норм Возможно, просто пока не попадались такие задачи, где вариант породить новые данные, а не изменить существующие, был бы не самым оптимальным
🖤
Вьюс положить в сервер да
клал только что, там говно какое то было, но попробую еще раз, но внимательно
Igor
Просто мы живем не в 20 веке, где средняя машина имеет 64 магабайта оперативной памяти
Алексей
Ну и задачи решаем не из 20 века И с другими объемами данных работаем
🖤
клал только что, там говно какое то было, но попробую еще раз, но внимательно
положил, внимательно вчитался в полотна ошибок, поправил одну строку и заработало. Посоветуйте где что почитать, чтоб нормально организовывать проект?
Igor
Согласен, не из 20. Но зачастую делая копию данных оригинал уже не нужен, тюею выбрасывается из памяти. Это раз. Зачастую приходится делать просто поверхностную копию объекта, что не так уж и бьет по производительности. Это два. Мы работаем над проектом, где каждая функция на сервере является чистой, никакого мутирования. Таймаут запроса - 5 сек. Все что отрабатывает свыше 5 сек неприемлимо. И ни разу это не произошло из-за желания не мутировать данные
Алексей
Ну ок А если вернуться на шаг назад Какую проблему в данном примере решила бы замена мутации данных на формирование новых данных? Это повысило бы производительность? Улучшило бы читаемость?
Алексей
Согласен, не из 20. Но зачастую делая копию данных оригинал уже не нужен, тюею выбрасывается из памяти. Это раз. Зачастую приходится делать просто поверхностную копию объекта, что не так уж и бьет по производительности. Это два. Мы работаем над проектом, где каждая функция на сервере является чистой, никакого мутирования. Таймаут запроса - 5 сек. Все что отрабатывает свыше 5 сек неприемлимо. И ни разу это не произошло из-за желания не мутировать данные
Зачастую это понятно, конечно Ну а если всё таки надо делать глубокую копию? Я поясню Я не против фп, чистых функций и иммутабельности Я против того, что это универсальный подход. И против того, что при любом вопросе первое, что советуют - иммутабельность. Даже если проблема явно не с мутабельностью данных связана
Igor
ну я не говорил про "всегда и везде pure function"
Igor
Я говорю, что в js мутабельность очень щекотливая тема и некоторые вещи не столь очевидны
🖤
положил, внимательно вчитался в полотна ошибок, поправил одну строку и заработало. Посоветуйте где что почитать, чтоб нормально организовывать проект?
На локалке всё отладил, классно работает. Задеплоил на хероку - 2018-02-17T11:19:08.124922+00:00 app[web.1]: Error: Failed to lookup view "/app/server/views/home.hbs" in views directory "/app/views"
Nikolay Markov
привет всем, куда лучше вакансию запостить? сюда или есть отдельный канал?
Nikolay Markov
Внезапно) А как же питон? 🙃
а причем тут питон? должен же кто-то и этим заниматься