@nodejs_ru

Страница 2729 из 2748
Vadim
22.10.2018
12:06:32
Еще буду разбираться в чем причина. fs.clonefile - ведет себя как то странно?

Sergey
22.10.2018
12:41:09
Привет! Не подскажете как посмотреть текст HTTP Requesta который делаю через стандартный http модуль, http.request

Егор
22.10.2018
15:01:02


на самом объекте

Google
Егор
22.10.2018
15:02:14
Или там где-то написанно в API, но я не увидел?

http://mongodb.github.io/node-mongodb-native/3.1/api/ObjectID.html#getTimestamp

Александр
22.10.2018
15:03:27
Alexey
22.10.2018
15:04:52
кстати про id. Внутри метода модели как обратиться коротко к ее id?

Alexey
22.10.2018
15:05:41
this._id ?

вижу..

Cenator
22.10.2018
15:07:08
еще раз и бан во всех чатах

Alexey
22.10.2018
15:07:13
а как лучше создать новую модель и в ней ref на текущую или внутри текущей вложенный массив? в чем принципиальная разница?

Егор
22.10.2018
15:09:28
ObjectID же и есть твое поле _id
Да, точно. Я тупанул жестко) Я подумал, что _id это поле в ObjectId)

Alexey
22.10.2018
15:09:51
вообще хорошо ли по аналогии с реляционными БД нормализацию делать и выносить многое в отдельные таблички со связкой по id?

Александр
22.10.2018
15:10:06
Не хорошо

Егор
22.10.2018
15:10:23
Странно ещё то, что оно определяет мою временную зону

Google
Егор
22.10.2018
15:11:24
Обычно в timestamps добавляется просто UTC

Alexey
22.10.2018
15:11:26
Не хорошо
те это только в том случае если в другой модели реально что то другое... ну скажем продукты и заказы это две разные модели. а вот скажем продукты и какую то дополнительную инфу по ним лучше не делать 2 модели?

Егор
22.10.2018
15:11:43
а тут GMT+<INT>

Alexey
22.10.2018
15:11:45
пример чисто первое что пришло на ум

Да
ну а скажем токен для востановления

пароля. хорошо прямо в User

или в отдельную модель ResetPassTokens

Aleksey
22.10.2018
15:13:26
Коллеги, привет! Был ли у кого опыт работы с голосовыми технологиями (Web Speech API, Speechkit) ? Интересуют пратические кейсы по взаимодействию с интерфейсами речью

Александр
22.10.2018
15:13:36
Alexey
22.10.2018
15:14:15
Прямо в
а еще токен активации юзера еще признак его блокировки и все это в монге норм в одной таблице

Alexey
22.10.2018
15:14:38
Коллекции.
в одной коллекции точнее

и модели

а не в нескольких

Александр
22.10.2018
15:14:58
Да

Alexey
22.10.2018
15:15:19
ok. значит можно широкую коллекцию

пасибо

Went
22.10.2018
15:45:43
ok. значит можно широкую коллекцию
эмм... относительно 16 MB BSON на документ по дефолту

Alexey
22.10.2018
15:46:50
эмм... относительно 16 MB BSON на документ по дефолту
но этого наверное хватит на документ у которого и 10 и 20 полей..

Google
Alexey
22.10.2018
15:47:02
да в общем то текстовые данные много места не занимают..

Alexey
22.10.2018
15:47:24
я более с точки зрения как логичнее и правильнее делать структуру..

Went
22.10.2018
15:49:48
типа почти как доменная модель всё, что к одной сущности — в одной коллекции — пользователь с настройками — db.user — сайт со страницами — db.site, и т.п. + не забываем, что в .methods можно много чего остального у нас, например, mongoose — это вообще ВСЕ данные, в т.ч. интерфейсы сторонних API и FS а так же, что есть ещё .virtual и .discriminator и вот в последнем реализуется паттерн STI Single Table Inheritance - Wikipedia https://en.wikipedia.org/wiki/Single_Table_Inheritance в общем, полноценная перегрузка методов, свойств и всего остального в рамках одной записи при кастовании разных .discriminatorValue

Alexey
22.10.2018
15:52:31
типа того? Пример пока весьма условный... например deleted у токенов наверное зря..

Went
22.10.2018
15:53:30
все вложенные коллекции желательно реализовывать через Mongoose v5.3.4: SubDocuments https://mongoosejs.com/docs/subdocs.html так будет меньше проблем с Валидацией

Erving
22.10.2018
15:56:03
не совсем но ноде вопрос, не бейте, просто проблема не гуглится, а тут, может, кто-то сталкивался

Went
22.10.2018
15:56:26
const UserSchema = mongoose.Schema( { name: { type: String, required: true, index: true }, email: { type: String, required: true, index: true, unique: true }, password: { type: String, required: true }, resetPassordTokens: [ { verification: { type: String }, createdAt: { type: Date }, deleted: Boolean } ], activationTokens: [ { verification: { type: String }, createdAt: { type: Date }, deleted: Boolean } ] }, { versionKey: false, timestamps: true } )
const resetPasswordsSchema = new Schema({ verification: { type: String }, createdAt: { type: Date }, deleted: Boolean }); const activationTokensSchema = new Schema({ verification: { type: String }, createdAt: { type: Date }, deleted: Boolean }); { name: { type: String, required: true, index: true }, email: { type: String, required: true, index: true, unique: true }, password: { type: String, required: true }, resetPassordTokens: [resetPasswordsSchema], activationTokens: [activationTokensSchema] }, { versionKey: false, timestamps: true }

Erving
22.10.2018
15:57:31
есть vps в облаке mail.ru, у неё есть ip. машина не видит свой ip, ip addr show это потверждает. как такое возможно, почему?

Alexey
22.10.2018
15:58:29
const resetPasswordsSchema = new Schema({ verification: { type: String }, createdAt: { type: Date }, deleted: Boolean }); const activationTokensSchema = new Schema({ verification: { type: String }, createdAt: { type: Date }, deleted: Boolean }); { name: { type: String, required: true, index: true }, email: { type: String, required: true, index: true, unique: true }, password: { type: String, required: true }, resetPassordTokens: [resetPasswordsSchema], activationTokens: [activationTokensSchema] }, { versionKey: false, timestamps: true }
const ResetPasswordSchema = mongoose.Schema( { verification: { type: String }, deleted: Boolean }, { versionKey: false, timestamps: true } ) const UserSchema = mongoose.Schema( { name: { type: String, required: true, index: true }, email: { type: String, required: true, index: true, unique: true }, password: { type: String, required: true }, resetPassordTokens: [ResetPasswordSchema] }, { versionKey: false, timestamps: true } )

Went
22.10.2018
15:59:27
:)

Went
22.10.2018
16:00:09
Для продакшена обязательно что-то типа autoIndex : config.AutoIndex т.е., чтобы в конфиге прода было выключено просто представьте, что на 1М коллекцию нужно будет поле с index:true под нагрузкой "вылить"

Alexey
22.10.2018
16:00:10
ну те такая схема как написали она же при запуске приложения генерит индексы..

config.AutoIndex который false if NODE_ENV == prod

Went
22.10.2018
16:01:46
Google
Alexey
22.10.2018
16:01:56
руками же :) db.createIndex ...
придется помнить какие...

руками же :) db.createIndex ...
типа такой скриптик написать.. и запускать на проде?

или миграции.. а без них хотелось обойтись..

Went
22.10.2018
16:02:59
придется помнить какие...
эмм... мы все фичи реализуем через enabled~disabled конфиг т.е. 1. сначала катятся изменения кода 2. потом делаются нужные индекы 3. только теперь "включается" функционал опцией конфига это "упрощённо" но так и есть

Alexey
22.10.2018
16:03:43
можно так можно иначе..

мне кажется для начала нужно куда то запомнить индексы да и все..

скрипт типа createIndexes.js а в нем все индексы, был бы норм?

Went
22.10.2018
16:04:51
или миграции.. а без них хотелось обойтись..
смотрите .discriminator https://mongoosejs.com/docs/discriminators.html ставите разные версии, все новые документы получают свежий код старые по мере "использования" "дотягиваются" до последнего кода по полям и т.п. :) есть .pre('init' хук ещё через него можно конструировать что-то сложное эмм.. и как бы вообще, на мой вкус можно заложиться, заранее создав пару полей с названием customData в которых mixed контент, чтобы потом не было проблем при влетающих Change Reaquest, хотя это "вкусовщина" (просто не совсем удобно когда в robo3t документы на "верхнем уровне" полей по разному выглядят)

roma
22.10.2018
16:09:30
стоит читать Beginning Node.js если я немного знаком с основами js?

Phoenix»
22.10.2018
16:09:34
подскажите как можно с буфером работать например есть let a = new Buffer.alloc(2); как можно инкреминитровать a => 0001 и тд?

Went
22.10.2018
16:19:01
пока не забыл... А такие вещи как скажем UserLoginHistory где все его заходы, конечно в отдельную коллекцию. А обоснование? тк таких заходов может быть очень много?
обоснование проще — ELK стеку будет легче Kibana же в перспективе видится? + очень скоро понадобится статистика aggregate между коллекциями — почти бред

Went
22.10.2018
16:21:52
А какой нибудь там UserDevices которых ну максимум 5-10 вложенной коллекцией?
это не очень понял — все устройства логинов пользователя?

Alexey
22.10.2018
16:22:08
это не очень понял — все устройства логинов пользователя?
да устройства с которых он заходил если захочу сохранить.

Went
22.10.2018
16:22:16
если нужны, я бы клал в user

Alexey
22.10.2018
16:22:17
взяв какой нибудь deviceDetect

Google
Alexey
22.10.2018
16:22:26
если нужны, я бы клал в user
да я тоже так подумал..

а каких нибудь UserPlaylists если такой нужен сайту UsersLikes те что он ставил? а не его объектам..

тоже ведь можно вложенной коллекцией..

ну это уж совсем просто для понимания.. реально делать пока буду напоминалки пароля и LoginHistory

Nurlan
22.10.2018
16:30:07
Добрый вечер, как лучше реализовать админа через PassportJS, я реализовал регистрацию и аутентификацию, пользователи видят только свои записи, а вот как реализовать админа чтобы он видел все записи? Написать еще один файл роутов где указанов если user == admin (указать явно пользователя или его id) то делать get post на все записи в БД?

Aga
22.10.2018
16:36:48
А можно ссылочку где подробно можно почитать про маскарад
Чувак, да просто проверяй при запросе, он админ или нет

Если админ - давать соответсвующий контент, если нет слать нах

Sergey
22.10.2018
16:40:23
Чувак, да просто проверяй при запросе, он админ или нет
А потом появится редактор и модератор, и предложишь проверять админ или редактор или модератор?

Went
22.10.2018
16:42:37
например express-acl - npm https://www.npmjs.com/package/express-acl

Nurlan
22.10.2018
16:45:13
Went
22.10.2018
16:46:09
Спасибо большое
да не за что там много подобного, пошукай что поинтересней/попроще/побогаче, по потребностям

Павел
22.10.2018
16:46:14
привет. заливаю на heroku. В procfile возможно что-нибудь на подобии этого запихнуть: web: cd client && npm run build && cd ../server npm run prod?

Страница 2729 из 2748