ikasymov
но если вызвать этот же файл в вручную то ошибки нет
Anonymous
так чему равен elem.toString()?
D
по поводу приложения, могу дать промокоды, кому интересно пишите в личку. 950 рублей экономия)
ikasymov
так чему равен elem.toString()?
равен к тому функции что я вызываю
ikasymov
то есть startpars
ikasymov
ikasymov
промис или async функция
Nurik
ikasymov
так чему равен elem.toString()?
сделал так for (let i in dirs){ await require(dirs[i]).startpars() } работает
Алексей
а если for (let i of dirs){ await require(i).startpars() }
ikasymov
а если for (let i of dirs){ await require(i).startpars() }
так i это index итератора а не сам обьект
Алексей
Oleg 🍺
Ребят, а можно сравнить два объекта даты?
Oleg 🍺
Аля a = new Date()
Oleg 🍺
b = new Date()
Oleg 🍺
a < b
Oleg 🍺
Это будет корректно?
Smooth Operator
Нет
Oleg 🍺
А почему он сравнивает и даже возвращает что - то корректное? Из - за приведения к строке?
Oleg 🍺
Или что происходит, когда я начинаю их сравнивать?
ikasymov
я такое заметил когда хотел сравнить два списка
Oleg 🍺
Есть знатоки, а то гугление пока в пустую
Oleg 🍺
Я конечно делаю a.getTime() < b.getTime() так, но всё же интересно)
ikasymov
может из за того что там new , то есть создаеш новый обьект, и они как бы разные оба
ikasymov
ikasymov
почему
Anonymous
это же не примитивные значение
Anonymous
по ссылке сравниваются, вроде
Oleg 🍺
Вангую toString
Мне тоже так кажется
Smooth Operator
Но там отбрасываются милисек
Oleg 🍺
А сравнение строк происходит по алфавиту я так понимаю?
Smooth Operator
Поэтому разные даты равны
Oleg 🍺
Даты не равны как - раз таки
Oleg 🍺
Я спецом сделал задержку небольшую между набором команд
Smooth Operator
Меньше сек?
Anonymous
память под массив выделилась, ссылку получили, выделили еще памяти и получили ссылку
Oleg 🍺
Больше
Oleg 🍺
Я так быстро печатать не умею
Smooth Operator
Меньше равны)
Anonymous
две разные ссылки
Oleg 🍺
Я их по очереди, в консоле вводил
Anonymous
подключал кто-нибудь webstorm с помощью node.js remote debug к докеру? была ли проблема, что дебаггер не смог подключиться?
Anonymous
сервер ноды в докере, т.е.
Anonymous
ломлюсь на порт, который в expose висит
Paruyr
Не знаю как в ноде пишут подобное. Не видел примеры. И вот в курсе по ноде (забыл название, свежий слитый) функции юзают
Посмотри как сделаны права доступа в chmod Еще так можно. Записываешь роль строкой или числом (enum), в мидлвари, перед хендлером роута, делаешь проверку. Если роль не совпала с требуемой, то юзеру 405, иначе дальше по цепочке
arts
Вангую toString
А не valueOf?
l3xxxy
парни помогите подключаюсь к постгресу через sequelize, нижк код и ошибка /** Database */ const connection = new Sequelize( dbConfig.database, dbConfig.username, dbConfig.password, { host: dbConfig.host, dialect: dbConfig.dialect, pool: { max: 5, min: 0, idle: 10000 } } ); connection.authenticate() .then(() => { console.log(`Connected to ${database.databaseUrl} DB!`) }) .catch(e => console.error(`Failed to connect to DB ${database.databaseUrl} on startup`, e)); выкидывает с такой ошибкой Failed to connect to DB undefined on startup { SequelizeConnectionError: read ECONNRESE T at connection.connect.err (D:\new dev\registration-service\node_modules\sequelize\l ib\dialects\postgres\connection-manager.js:107:24) at Connection.connectingErrorHandler (D:\new dev\registration-service\node_modules\ pg\lib\client.js:126:14) at emitOne (events.js:115:13) at Connection.emit (events.js:210:7) at Socket.<anonymous> (D:\new dev\registration-service\node_modules\pg\lib\connecti on.js:71:10) at emitOne (events.js:115:13) at Socket.emit (events.js:210:7) at emitErrorNT (internal/streams/destroy.js:64:8) at _combinedTickCallback (internal/process/next_tick.js:138:11) at process._tickCallback (internal/process/next_tick.js:180:9) name: 'SequelizeConnectionError', parent: { Error: read ECONNRESET at exports._errnoException (util.js:1024:11) at TCP.onread (net.js:610:25) code: 'ECONNRESET', errno: 'ECONNRESET', syscall: 'read' }, original: { Error: read ECONNRESET at exports._errnoException (util.js:1024:11) at TCP.onread (net.js:610:25) code: 'ECONNRESET', errno: 'ECONNRESET', syscall: 'read' } }
Alex
Всем привет народ) касательно hhtp протоколов и заголовков хватит статей почитать или есть книжки, которые стоит хорошенько изучить?)
Dmitry
это обычная проверка доступа, но что если на странице есть функции для админа и юзера. И нужно не показать для юзера? Тогда делаем функцию can() принимающую какой то обьект. И она выолниться вернут bool. И мы можем определить может это делать или нет
Paruyr
Сделай через маски и все
Dmitry
какие маски?
Dmitry
это не то. Мне нужно проверить что может он делать или нет. На пример может ли он обновить пост и тд
Smooth Operator
А не valueOf?
С чего бы?
Paruyr
https://learn.javascript.ru/bitwise-operators#маска Вот у Кантора хорошо описано все
Smooth Operator
С чего бы?
Date это же Object
Smooth Operator
toPrimitive на Object делает toString
Paruyr
Ну в NPM есть много пакетов, что бы проще было.
Dmitry
мне проще взять функцию и передать туда что то. Она вернет true или false. И так можно узнать)
Kons
ЧТОБЫ
Dmitry
куда проще чем маска * ? Просто много if else
Dmitry
а с can() будет одно условие и все. в то время как с маской туча
Paruyr
const need = ACCESS_CREATE | ACCESS_UPDATE; const got = ACCESS_CREATE; const can = got & need;
Dmitry
ну и мне это говно хранить и тд? Не фигня.
Paruyr
respond(can ? OK : FAIL)
Dmitry
if (assecc && update) {} ну лажа
Dmitry
can(): bool куда проще уже не правда ли ?
Paruyr
Я бы вот как сделал: const isGranted = (mask) => async (ctx, next) => { if (ctx.user.rights & mask) { await next() } else { throw new Error('not allowed'); } } И уже в роутере: router.get('/admin', isGranted(admin), ...);
Dmitry
и маска не подойдет для случая - на пример. Я на писал пост и хочу его изменить. И мне нужно изменить только свой. Маска не каким боком не поможет
Paruyr
Маска + принадлежность к группе
Dmitry
блин ты не понял меня
Paruyr
Мейби