Cenator
20.10.2018
14:59:42
У тебя айдишники тех кто лайкнул же просто
rddlr
20.10.2018
15:00:15
да. и также у юзера есть список что он лайкнул
ну так че))
как правльно делать это в скл?
Google
rddlr
20.10.2018
15:08:19
500 комментов на странице, у комментов по 10000 лайков, 1000 юзеров на странице одновременно
как им показывать лайкнули ли они конкретный коммент или нет наиболее эффективно?
Alexey
20.10.2018
15:12:19
что бы не разбирать это все на клиенте
rddlr
20.10.2018
15:13:19
т.е. ты предлагаешь рассчитывать статус на сервере для каждого юзера на каждый запрос для каждого коммента. ок. тогда мне получается надо перед тем как отдать юзеру данные пройтись циклом по 500 комментам
это то как у меня сейчас реализовано
Alexey
20.10.2018
15:14:15
Valdemar
20.10.2018
15:14:23
rddlr
20.10.2018
15:14:45
в проде не будет этого, я описываю крайнюю ситуацию
Alexey
20.10.2018
15:15:08
rddlr
20.10.2018
15:15:48
ну естественно речь о юзере который запрашивает данные, о ком же еще? дял каждого запрашивающего данные юзера надо отдедьно вычислять
Alexey
20.10.2018
15:16:15
rddlr
20.10.2018
15:16:22
вот и получается, 500 комментов и 1000 юзеров одновременно
Google
Valdemar
20.10.2018
15:16:29
rddlr
20.10.2018
15:16:44
Alexey
20.10.2018
15:16:59
Cenator
20.10.2018
15:17:36
у меня так выглядит, vote это и есть лайк
Eugene
20.10.2018
15:18:13
?graphql?
Cenator
20.10.2018
15:18:25
rddlr
20.10.2018
15:18:57
Линк это что?
Cenator
20.10.2018
15:19:11
Это пост
rddlr
20.10.2018
15:19:11
типо коммент?
Cenator
20.10.2018
15:19:30
Комментов нет пока
rddlr
20.10.2018
15:19:56
т.е. ты для лайка создал отдельно "модель". а зачем?
почему в votes не хранить юзера напрямую?
ну и самое главное этот скрин не отвечает на вопрос как выстраивать статус лайнул или нет конркетный юзер
Cenator
20.10.2018
15:21:23
Ну ладно
rddlr
20.10.2018
15:22:04
что ну ладно? смысл создавать отдеьно для лайков есть или нет?
зачем их выносить в отдельную сущность?
Valdemar
20.10.2018
15:22:35
rddlr
20.10.2018
15:23:00
Google
rddlr
20.10.2018
15:23:12
чем запрашивать в Votes
Valdemar
20.10.2018
15:24:48
rddlr
20.10.2018
15:25:48
но можно же хранить эт овсе напрямую в комменте и у юзера
Cenator
20.10.2018
15:26:13
Valdemar
20.10.2018
15:26:17
rddlr
20.10.2018
15:26:36
согласен
Eugene
20.10.2018
15:26:54
Так расширять удобнее же потом
rddlr
20.10.2018
15:27:38
ок. а что дальше. надо показать статус конкретного сообщение - лайкнуто оно или нет юзером. где и как вычислять в таком случае?
Valdemar
20.10.2018
15:28:52
rddlr
20.10.2018
15:29:49
это то что у меня сейчас. но я представил картину: у комментов тысячя лайков и сотня комментов в одном запросе.
я же не буду каждый коммент отдельно запрашивать
Valdemar
20.10.2018
15:31:47
rddlr
20.10.2018
15:32:42
я сейчас так ставлю статус
tweets.map(tweet => {
const liked = tweetLikes.some(like => {
return like.toString() === tweet._id.toString()
})
Object.assign(tweet, { liked })
return tweet
})
есть сомнения в эффективности
т.е. я не храню в БД статус liked
Eugene
20.10.2018
15:33:23
._id , монго ??
rddlr
20.10.2018
15:33:38
да
Valdemar
20.10.2018
15:34:33
я про sql если что пишу) в монге не знаю как там это по производительности
rddlr
20.10.2018
15:34:45
так эт о не монга, это js
я это делаю перед ответом
Valdemar
20.10.2018
15:35:14
так is_liked в базе надо высчитывать при запросе
Google
rddlr
20.10.2018
15:35:29
хуясе, так можно в скл?
?
Valdemar
20.10.2018
15:35:56
Cenator
20.10.2018
15:36:02
?
Ты тренируешься или в прод пишешь?
rddlr
20.10.2018
15:36:11
пет проджект - и в прод
Mishell
20.10.2018
15:36:11
Существует async функция.
В ней я сначала получаю инфу из баз данных с помощью await
Потом начинаю бегать циклом for по данным
Потом сохраняю данные массово, снова с помощью await
То есть два await, а между ними цикл for.
Второй await не будет вызван пока for не закончится?
Grigorii
20.10.2018
15:36:15
Я запутался
._id , монго ??
да
так эт о не монга, это js
Cenator
20.10.2018
15:36:52
rddlr
20.10.2018
15:36:56
Я запутался
что не понятно? монга вовзращает данные, я прохожусь по ним и добавлю флаг. что не ясно?
Grigorii
20.10.2018
15:37:22
rddlr
20.10.2018
15:37:27
Mishell
20.10.2018
15:37:43
Grigorii
20.10.2018
15:37:58
Mishell
20.10.2018
15:38:10
А, тогда все в порядке)
Eugene
20.10.2018
15:38:46
Cenator
20.10.2018
15:38:49
Google
Mishell
20.10.2018
15:38:50
Кстати, а функции высших порядков типа map, filter не затормозят вызов второго await, верно? Так же как и forEach
rddlr
20.10.2018
15:39:20
для монги мне надо 0 зависимостей на клиент и 1 зависимость на сервер
для графкуель мне надо 10 библиотек на клиент и 20 на сервер))
Cenator
20.10.2018
15:40:47
Вообще можно и не парсить а слать application/graphql с клиента
Kendr
20.10.2018
15:41:16
Valdemar
20.10.2018
15:41:34
Grigorii
20.10.2018
15:41:54
rddlr
20.10.2018
15:41:56
Grigorii
20.10.2018
15:43:08
Cenator
20.10.2018
15:43:16
Eugene
20.10.2018
15:43:17
Тригерид ?
rddlr
20.10.2018
15:43:20
npm install --save vue-apollo graphql apollo-client apollo-link apollo-link-http apollo-cache-inmemory graphql-tag
это только на клиент
Alex
20.10.2018
16:15:33
подскажите плиз, как сделать так, чтобы функцию можно было вызывать не с помощью колбеком, а с помощью await
exports.getActiveAccountsCount = function(cb) {
process.nextTick(function() {
var sql = "SELECT COUNT(*) FROM `accounts` WHERE `access_token` IS NOT NULL";
db.query(sql, function(err, rows) {
if (err) return cb(err, null)
var count = JSON.parse(JSON.stringify(rows[0]))
return cb(err, count)
})
})
}
Heisenberg
20.10.2018
16:18:38
подскажите, есть какие-то либы для валидации моделей, которые приходят в express с запросом?
например чтобы по адресу /login прилетала только модель типа {username: String, password: String}
express-validator норм подходит для такого?