Lera
поняла, сейчас пересмотрю
Anonymous
миделвари и структура модуля
Ohar
Anonymous
Можно в личку?
лучше сюда, так больше шансов, я не особо в ноде разбираюсь
Lera
я поняла
Lera
/stat@combot
Lera
ой
Dreamerinnoise
ну там вроде коннект вытащили
Dreamerinnoise
он теперь отдельно идёт
Dreamerinnoise
остался только статик
Anton
вопрос по #loopback
есть ли у loopback что-то из коробки для того что бы запретить перезаписывать свойства модели через API?
например, есть модель “AppUser” у которой есть свойство “created”. было бы не плохо запретить юзеру перезаписывать его
Lera
спасибо, действительно require
Дмитрий
Evgeny
/stat@combot
Vlad
you dont know js
Anton
@PragmaWolf ну это самое очевидное и попахивает костылем
была еще более костыльная идея - привязать к “AppUser” модель а-ля “AppUserPrivate” унаследованную от “Model”
и только что появилась идея попробовать через ACL закрыть доступ, но в эту сторону еще нужно ресерчить
Дима
Anton
конкретнее про Proxy API?
Anton
если ты про проксирование стандартных CRUD методов типо upsert, create, prototype.updateAttributes, то это костыль будет
Дима
Механизм полного перехвата в es6: вызоов любых существующих и несуществующих методов, свойств, конструкторов, да хоть instanceof — всё переходит в режим ручного управления
Anton
если про проксирование REST API через другой REST API, то это вообще костылище
Дима
Это проксирование любого свойства объекта в js
Anonymous
ребят кто может на пальцах про memory leaks в JS объяснить? откуда сей зверь берётся и как с ним бороться... в гугле как-то непонятно пишут(
Anton
Это проксирование любого свойства объекта в js
это то о чем я говорил, только через Proxy API. в идеале было бы круто решить эту задачу используя функционал самого loopback. переопределение методов и их проксирование в этом случае будет если не костылем, то эгоизмом, ведь можно закинуть парням PR с добавлением этого функционала прямо в loopback
Дима
если про проксирование REST API через другой REST API, то это вообще костылище
Вот например объект, который автоматически заполняется при любом запросе
var tree = Tree();
tree
> { }
tree.branch1.branch2.twig = "green";
tree
> { branch1: { branch2: { twig: "green" } } }
tree.branch1.branch3.twig = "yellow";
> { branch1: { branch2: { twig: "green" },
branch3: { twig: "yellow" }}}
Вот API, которое автоматически распознаёт комбинированные имена
PAIP.set2add10Append
Дима
Anton
я понял о чем ты, но это уже совсем глубоко. мне нужно не запретить сетить в объект, а запретить делать это через методы REST API
Anonymous
Дима
Да, пустой
Дима
Какое бы ты свойство в нем не запросил - оно в нем сразу окажется
Anton
в loopback, PUT на /users/:id вызывает prototype.updateAttributes() модели и уже лучше просто его запроксировать
Дима
Ну и вообще, можно переопределить все известные осноовные свойства объекта, у меня пока даже фантазии не хватает. что с их помощью можно нагенерировать)
Дима
Vlad
Дима
Firefox с их помощью например реализует границы доступа между доменами. Но можно конечно и по старинке ¯\_(ツ)_/¯
Anonymous
да прикольная штука
JẹtFightżer
Использую io.js, запускаю скрипт (strict mode) через runInNewContext, когда скрипт запускается второй раз вылетает ошибка о повторном декларировании через let
why?
Anton
а зачем io.js?
Anton
@JetFightzer
JẹtFightżer
не помню. ещё давно почему-то выброл его, а не ноду, но так-то API у них почти идентичные
Ohar
JẹtFightżer
но ведь
> запускаю скрипт (strict mode) через runInNewContext
JẹtFightżer
на каждый вызов новый контекст должен быть
Ohar
Значит обман
JẹtFightżer
я передаю один и тот же объект в функцию в качестве "контекста", но это не контекст, это просто окружение, контекст функция ведь должна сделать сама и какждый раз новый, не?
JẹtFightżer
я ведь вызываю не runInContext с явным контекстом
JẹtFightżer
создание каждый раз нового объекта (путём extend) решило проблему. видимо контекст привязан к объекту
JẹtFightżer
интересно как в аналогичной ситуации вдёт себя нода?
Ohar
Так же. Движок тот же
Ohar
JẹtFightżer
vm.runInNewContext(code[, sandbox][, options])
туда передаётся не контекст, а сэндбокс
Ohar
А, это хз что за зверь
JẹtFightżer
vm.runInNewContext compiles code, contextifies sandbox if passed or creates a new contextified sandbox if it's omitted, and then runs the code with the sandbox as the global object and returns the result.
> contextifies sandbox if passed
JẹtFightżer
быть может эта операция на месте рпосто?
Ohar
Но, судя по симптомам, у больного типичная проблема непонимания передачи объекта по ссылке, а не значению
JẹtFightżer
не создание контекста из сэндбокса, а превращение сэндбокса в контекст?
Ohar
И в чем разница, лол?
Ohar
Ты его передал и из него контекст слепили
Ohar
Там был объект - а он по ссылке передаётся
Ohar
Мне бы иное и в голову не пришло
JẹtFightżer
разница в том что операция может быть на месте (меняет объект) или чистая (создаёт новый объект на основе старого)
Ohar
Там ничего не сказано про создание нового
Ohar
О таких вещах специально говорят, во избежание конфузов
JẹtFightżer
таки да, в этом и есть моя ошибка. я просто привык что обычно оно работает так, создавая новые объекты. ФП, все дела
JẹtFightżer
вероятно для сэндбокса есть смысл описать класс, дабы запихать методы в прототип?
Vlad
LEXASOFT
а есть у кого нибуть пример двух пост запросов последовательно и возвратить результат последнего?
Vlad
LEXASOFT
это node-fetch?
Vlad
просто фетч
Vlad
какую реаализацию возьмёшь дело твоё
LEXASOFT
мне просто надо вытащить токен из первого запроса и передать во второй и вернуть сразу результат
Vlad
ну так используй результат первого запроса
Eugene
попробуй промисом написать
Vlad
fetch('/auth').then(token => fetch('/supb', {}, { auth: token }))
LEXASOFT
пока не совсем понимаю в промисах
Vlad
и по es6 https://github.com/lukehoban/es6features#readme
Дмитрий