@nodejs_ru

Страница 2463 из 2748
Andrew
26.08.2018
13:30:31
здец. это тебе уже 21. одуреть.

Maxim
26.08.2018
13:30:52
здец. это тебе уже 21. одуреть.
ага, через полторы недели) сам в шоке

ща ещё перлы скину кусок кода, может кому-то понравится)

заодно растолкуете может что эта ересь делает

Google
Nikita
26.08.2018
13:31:32
здец. это тебе уже 21. одуреть.
ога а те, кто родился в 2000, уже совершеннолетние

Maxim
26.08.2018
13:31:40
здец. это тебе уже 21. одуреть.
а самому то сколько?

Andrew
26.08.2018
13:31:52
я 89го

Ярослав
26.08.2018
13:32:17
2002го

Maxim
26.08.2018
13:32:32
не поверишь, уже три года кожу) на ноде чуть меньше года

ладно

код в студию: use(fn) { this.go = (stack => (...args) => stack(...args.slice(0, -1), () => { const next = args[args.length - 1]; fn.apply(this, [...args.slice(0, -1), next.bind.apply(next, [null, ...args.slice(0, -1)]), ]); }))(this.go); }

Nikita
26.08.2018
13:34:04
ахвхавхах

я даже не понимаю

что тут происходит

зачем так

Google
Nikita
26.08.2018
13:34:15
и почему

Gleb
26.08.2018
13:36:17
Лол

Maxim
26.08.2018
13:36:56
в общем это кастомный врапер over FaaS, serverless.

напоминает експресс, только самописный

этот кусок - по идее имплементация паттерна middleware

но как работает - я так и не выкупил

не то что бы меня конкретно этот кусок кода парил, но блин, такой весь проект...

нахуя
и да - я полностью солидарен с тобой и предидущим оратором)

Alexander
26.08.2018
13:40:07
и да - я полностью солидарен с тобой и предидущим оратором)
я так понял это отсюда взято https://gist.github.com/darrenscerri/5c3b3dcbe4d370435cfa

Maxim
26.08.2018
13:44:45
я так понял это отсюда взято https://gist.github.com/darrenscerri/5c3b3dcbe4d370435cfa
ок, вижу (и да - в коде есть в комменте ссылка на гитс - правда на другой и с другим кодом =( ) только вопроса это не снимает - что

как это работает?

Alexander
26.08.2018
13:45:52
не, получше поищу

хм, а инфы и правда немного в этих ваших интернетах, но вот что-то похожее... https://stackoverflow.com/questions/39318027/how-to-write-a-middleware-class-in-node-js

Maxim
26.08.2018
14:00:34
хм, а инфы и правда немного в этих ваших интернетах, но вот что-то похожее... https://stackoverflow.com/questions/39318027/how-to-write-a-middleware-class-in-node-js
ok, спасибо, но согласись - constructor() { this.middlewares = []; } use(fn) { this.middlewares.push(fn); } в разы проще того что я сбрасывал..

Andrei
26.08.2018
14:06:30
ok, спасибо, но согласись - constructor() { this.middlewares = []; } use(fn) { this.middlewares.push(fn); } в разы проще того что я сбрасывал..
ну а как ты эти this.middlewares применять потом будешь? попробуй написать сам, в итоге то на то и выйдет. тут просто народ хотел написать "чтобы было минимум строк кода"

Andrei
26.08.2018
14:09:03
это "engine". его один раз написал и потом никогда к нему не возвращаешься. поэтому не страшно если он сложный.

главное чтобы основной код был нормально написан

Nikolay
26.08.2018
14:09:47
Никогда не понимал вот этих эпизодов "умного программирования", на-ху-я? За лишние строчки кода вас током хуячит что-ли?

Google
Andrei
26.08.2018
14:11:20
famous last words :D
ну а что, ты часто улучшаешь engine миддлварей? ты хоть раз улучшал его? или вообще писал его?

тут вопрос прагматизма. безусловно, код должен быть в основном простой и понятный. но есть случаи, когда это неважно.

Таймураз
26.08.2018
14:14:02
и почему
За столбики ро выдам в следующий раз

код в студию: use(fn) { this.go = (stack => (...args) => stack(...args.slice(0, -1), () => { const next = args[args.length - 1]; fn.apply(this, [...args.slice(0, -1), next.bind.apply(next, [null, ...args.slice(0, -1)]), ]); }))(this.go); }
Дай всей этой дичи нормальное именование переменных, заменяй части кода на современные и понятные аналоги А там будет проще переписать

Maxim
26.08.2018
14:20:13
Дай всей этой дичи нормальное именование переменных, заменяй части кода на современные и понятные аналоги А там будет проще переписать
да, я согласен в чём-то со всеми) да только вот там вся кодобаза такая хитровыделаная с 0 написаны свои mailer, request/responce, auth классы, и много чего другого =( всё бы то ничего, да только это прийдётся поддерживать.

Maxim
26.08.2018
14:22:00
удачи
спасибо (без под*ба)

Maxim
26.08.2018
14:23:56
ех, раз у меня кажись бенефис в этом чате сегодня, то вот вам занятная ссылка: https://edgecoders.com/how-well-do-you-know-node-js-36b1473c01c8 кто сколько осилит взять вопросов? =)

Nikita
26.08.2018
14:24:12
а в одном сообщении можно столбиками писать ?

Таймураз
26.08.2018
14:26:22
Andrei
26.08.2018
14:38:39
ех, раз у меня кажись бенефис в этом чате сегодня, то вот вам занятная ссылка: https://edgecoders.com/how-well-do-you-know-node-js-36b1473c01c8 кто сколько осилит взять вопросов? =)
мне кажется большинство этих вопросов не имеют практического смысла. по модулям к примеру, не очень понимаю, зачем знать детали того, как оно работает. может и есть какие-то хитрости, но в 99% случаев нужен module.exports и require, а они простые как топор. опять же libuv, я про неё знаю только потому, что когда-то давно готовился к собеседованию. а на практике важно только знать что IO асинхронный и может выполняться параллельно с основным кодом (если не использовать методы *Sync).

а какая там либа для этого используется, да какая к черту разница

Nikolay
26.08.2018
14:43:04
ну а что, ты часто улучшаешь engine миддлварей? ты хоть раз улучшал его? или вообще писал его?
Не бывает такого кода, который "раз написал и никогда не возвращаешься"

Andrei
26.08.2018
14:43:17
такие вопросы имеют смысл возможно для высоконагруженного решения, когда идёт серьезная оптимизация, но 99% девелоперов пишут простые сайтики с парой тысяч юзеров в день максимум, а для этого достаточно воткнуть экспресс и не загружать себе мозги.

Google
Nikolay
26.08.2018
14:43:25
Очень хотелось бы писать такой код, но увы :))

Andrei
26.08.2018
14:51:26
Не бывает такого кода, который "раз написал и никогда не возвращаешься"
вот в том-то и дело, что бывает сколько проектов было загублено только потому, что начинающий архитектор решил что "а давайте сделаем всё как следует", "не бывает неважного кода", "всё должно быть идеально" если бы идеальный код легко было писать, это одно дело, но ведь его писать очень непросто. почти всегда, если очень сильно подумать, можно найти какое-нибудь элегантное решение проблемы, красивое, простое и понятное. но если так думать над каждым классом/функцией, состаришься прежде чем хоть какой-нибудь проект закончишь... вот чего не бывает, по моему глубокому убеждению (основанному на опыте), это однозначности. нет ни одного паттерна, который бы подходил везде. нет ни одного правила, которое бы абсолютно везде было применимо. об этом я и пытался сказать: всегда есть исключения из правил.

Nikolay
26.08.2018
14:54:25
Код должен быть выразительным и понятным. Исключение могут составить разве что всякие хаки оптимизации ради.

Я надеюсь понятно, что я говорю в контексте работы в команде.

Admin
ERROR: S client not available

Maxim
26.08.2018
14:56:41
мне кажется большинство этих вопросов не имеют практического смысла. по модулям к примеру, не очень понимаю, зачем знать детали того, как оно работает. может и есть какие-то хитрости, но в 99% случаев нужен module.exports и require, а они простые как топор. опять же libuv, я про неё знаю только потому, что когда-то давно готовился к собеседованию. а на практике важно только знать что IO асинхронный и может выполняться параллельно с основным кодом (если не использовать методы *Sync).
"когда-то давно готовился к собеседованию". Примерно для того же оно и мне надо) - назначили меня куратором по ноде в нашей конторе? и тут мне как-то так печально стало, что я не знаю как тот же event loop в потрохах работает) то есть что это такое и в чём профит понимание есть, но вот его фазы вспомнить сходу не мог вот и полез гуглить-ковырять. А как оказаось - чем дальше в лес, тем больше дров

Maxim
26.08.2018
15:06:09
вот главное такие вопросы на собеседовании не задавай)
не, я для себя) толку что-то объяснять если не смогу ответить на вопросы) вот недавно, я прям подофигел - сам пишу на 8-мой ноде, так как на 10-ке AWS Lambda пока писать не даёт. вижу у чувака в ноде import, потом черз пару строчек require. На вопрос в чём разница, и зачем ты их мешаешь он ответить понятное дело не смог. моё же объяснение свелось что 1) всё должно быть консистентно, мешать не стоит 2) это експерементальна фича..

ноды то тогда не было.
но мозги же у чувака тогда уже были)

Andrei
26.08.2018
15:40:26
Код должен быть выразительным и понятным. Исключение могут составить разве что всякие хаки оптимизации ради.
вот поэтому я больше не пишу статьи... до некоторых вещей можно дойти только на собственном опыте, объяснять бесполезно ? также с тестами, да и вообще любыми концептами. всему виной, академическое образование, подкрепленное исконным человеческим стремлением к перфекционизму

M
26.08.2018
16:33:59
Привет. У меня вопрос. Пишу сайт на express. Как избежать огромных ошибок от nodemailer в консоле при получении несуществующего адреса почты юзера при регистрации. Или это нормально? Подскажите пожалуйста кто с nodemailer работал. Спасибо

Кирилл
26.08.2018
16:57:38
Nodemailer вроде юзает debug

Добавь в env DEBUG=-nodemailer*

Или как то так

Google
Gleb
26.08.2018
17:02:16
или просто ошибки ловить? )

Max
26.08.2018
17:18:17
ok, спасибо, но согласись - constructor() { this.middlewares = []; } use(fn) { this.middlewares.push(fn); } в разы проще того что я сбрасывал..
Самая простая реализация миддлваров даже никакого библиотечного кода не требует http.on("request", async (req, res)=>{ await middleware1(req, res, middleware2, middleware3, middleware4, ...) }) async function middleware2(req, res, next, ...res){ ... await next(req, res, ...res); ... } async function middleware3(req, res, next, ...res){ ... await next(req, res, ...res); ... } async function middleware4(req, res, next, ...res){ ... await next(req, res, ...res); ... }правда вместо next() как в экспрессе нужно явно передавать параметры, зато все предельно просто и прозрачно

Alexander
26.08.2018
17:20:30
я пытался))))
ты вообще прочитал о чем был тред?

Julia
26.08.2018
17:21:19
хз, нет, даже не вчитывался, но может кому будет полезно

потому что я adonisjs.com использую в локальных проектах, хотелось в express немного ООП добавить

Nurlan
26.08.2018
17:50:28
Добрый вечер!

Кто может подсказать, делаю сейчас приложения для создания тестов, ну типа составляешь вопросы и варианты ответов, вот не знаю как лучше составить модель для mongodb, поидее mongo хорошо подходит для этого, то есть будет документ в нем поле вопроса, поля ответов, поле категории вопросов, автор вопроса (через ref подтягивается из другой коллекции где зарегистированные пользователи) проблема в том не могу сообразить как помечать правильный вариант ответа

Nurlan
26.08.2018
18:07:37
судя по аве, копируешь чей то проект?))
Можно итак сказать делаю выпускной проект в школе программирования

там нужно скопировать один зарубежный сайт с онлайн тестами

¢
26.08.2018
19:18:32
Привет, Ребята! Не подскажите пожалуйста , для авторизации на сайте для этого нужно ли создать две url'ы один для login/tutor , второй для login/user или все это объединить одним url'ом типо login/ и все ?

Roman
26.08.2018
19:19:46
Подскажите, что то в упор не могу понять, почему: npm mysql -v Возвращает: 5.6.0 При том что установленный модуль mysql имеет версию: 2.16.0 https://www.npmjs.com/package/mysql

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