
Vladimir
03.01.2017
06:25:44
На самом деле, новые стандарты всегда медленее; вспомни те же промисы

Дмитрий
03.01.2017
06:26:15

Vladimir
03.01.2017
06:26:43
Относительно const/let vs var: у первых больше семантики, я думаю это норм, если у них будет небольшой оверхед

Google

Дмитрий
03.01.2017
06:27:06
В моем pipe тесте замена var на const особо ни на что не повлияла, кстати)

Vladimir
03.01.2017
06:27:24
Но не помню, что именно. То ли джит был сломан, то ли турбофан не включался

Дмитрий
03.01.2017
06:27:56
А, ну да

Eduard
03.01.2017
06:28:23

Vladimir
03.01.2017
06:29:34

Джон
03.01.2017
06:42:40
https://esdiscuss.org/topic/performance-concern-with-let-const
вот статейка есть

Глеб
03.01.2017
06:43:49

Дмитрий
03.01.2017
06:50:06
120 мс и 480 мс
Но я первый попрошу себя стукнуть, если мне придёт в голову создать миллион объектов просто так

Глеб
03.01.2017
06:52:38
Это да) Тут скорее чисто теоретический интерес.

Google

Глеб
03.01.2017
06:53:43
Лол, в Firefox что-то глюкануло, c var 101432ms (завис), с let 447.
Результаты поменялись (ff49): var: 233.21мс, let: 33.05мс Чяднт?

Дмитрий
03.01.2017
06:58:35
Лоол
Да, фф виснет наглухо))

Nikita
03.01.2017
06:59:07
у меня чем больше итераций, тем быстрее работает лет и медленнее вар)

Alex
03.01.2017
08:00:03
ну ни как не могу понять эти промисы, как его сцука заставить заблокировать код и ждать пока я из сети скачаю файл и запишу его на диск и только потом начать выполнять следующий чейн, ту инфу что кидали сюда я так и не смог прикрутить к своему гавнокоду

Дмитрий
03.01.2017
08:23:31
Смотри подробнее на функцию resolve(), ее вызов говорит промису, что все ок, можно идти дальше

Pavel
03.01.2017
08:29:31
подскажите пожалуйста как в коа использовать разные проверки (middleware) для разных роутов. К примеру на серве есть ui часть, которая работает через jwt и все урлы нужно проверять на jwt. и есть просто апи методы, в которых нужно выставить специальный хедер, который не нужен в jwt и наоборот этим роутам не нужна авторизация по jwt. Как это можно сделать?

Alex
03.01.2017
08:32:21
что нужно передать в resolve из этого куска кода
{
const dlPath = folder + '/' + 'dl.txt';
let file = fs.createWriteStream(dlPath);
https.get(result, function (response) {
response.setEncoding('utf8');
response.on('error', function (err) {
console.error(err)
});
response.pipe(file)
})
в упор не понимаю

Slava
03.01.2017
09:11:38
Может file.end(resolve...
Это тема про стримы

Roman
03.01.2017
09:16:03
такой неожиданный вопрос, а для чего вы ипользуете модели, кроме валидации?
и еще, кто следит, в 8 ноду упадут es6 модули?

Pavel
03.01.2017
10:29:39
неужели никто не знает как разделить проверки для роутов в коа? чтобы не было конфликтов?

Nook
03.01.2017
10:30:25
?
В чем проблема на входе смотреть заголовок и использовать middleware или идти дальше?
А если еще роуты используешь, так я вообще не вижу проблемы
https://github.com/alexmingoia/koa-router
7 версия для koa@next

Google

Nook
03.01.2017
10:35:08
Это мастер ветка

Pavel
03.01.2017
10:36:19

Nook
03.01.2017
10:36:44
У тебя есть middleware
В нем условие поставить
if() { return next() }
Т.е не использовать дальше middleware

Николай
03.01.2017
10:38:05
наоборот, перейти к след. мидлваре, т.е. к роуту например

Pavel
03.01.2017
10:38:18
app.use(async (ctx, next) => {
if (ctx.request.header['qwe']) {
await next();
} else {
ctx.status = 403;
ctx.body = {
message: 'Access denied',
error: ctx.error
};
}
});
app.use(routes());
это проверка на хедер
а как быть с jwt ? у меня такой код
app.use(jwt({
secret: publicKey,
algorithm: 'RS256'
}));

Nook
03.01.2017
10:39:36
jwt({
secret: publicKey,
algorithm: 'RS256'
})
Возвращает тебе анонимную функцию

Nook
03.01.2017
10:40:39
Которая принимает ctx и next
Главное не пересоздавай ее внутри middleware
А то херня получится )

Pavel
03.01.2017
10:42:38
вроде идею понял, по коду пока не понимаю как оно :( не сталкивался с таким до этого момента

Nook
03.01.2017
10:42:47
const jwtMiddleware = jwt({
secret: publicKey,
algorithm: 'RS256'
});

Pavel
03.01.2017
10:44:40
это я понял, а использовать дальше jwtMiddleware в каком контексте и как, вот это я не понял, именно как это связать с проверкой хедера\

Nook
03.01.2017
10:48:13
app.use(async (ctx, next) => {
await jwtMiddleware(ctx, next);
});

Pavel
03.01.2017
10:52:02
ну и получается дальше идут роуты, которые работают через jwt так?

Google

Nook
03.01.2017
10:52:26
Лучше тогда использовать https://github.com/alexmingoia/koa-router
Почему таким путем не пойдешь?

Pavel
03.01.2017
10:53:10
его и использую, я не хочу в каждом методе проверять jwt или хедер
с ростом методов будут копироваться проверки, а так все проверки выкатил наружу в middleware

Nook
03.01.2017
10:55:13
koa@0.*
https://camo.githubusercontent.com/4bafe27df6fb198d66e134a3f977fcfc4ad75ff5/687474703a2f2f68336d616e74682e636f6d2f692f6b6f616a732e676966

Pavel
03.01.2017
10:59:07

Nook
03.01.2017
11:00:07
Это старая koa

Admin
ERROR: S client not available

Nook
03.01.2017
11:00:13
Но сути не меняет
Это даже не 1.*

Pavel
03.01.2017
11:02:17
вот на данном этапе у меня вот так:
app.use(jwt({
secret: publicKey,
algorithm: 'RS256'
}));
app.use(routes());
app.use(async (ctx, next) => {
if (ctx.request.header['qwe']) {
await next();
} else {
ctx.status = 403;
ctx.body = {
message: 'Access denied',
error: ctx.error
};
}
});
app.use(anotherRoutes());
routes() и anotherRoutes() это koa-routes routes()
но такой код неправильный
пытался отдельные апы сделать в которых свои middleware есть и через koa-mount собрать все в один, но в таком случае на любой запрос падает на серваке ошибка TypeError: next is not a function

Максим
03.01.2017
15:01:52
сори, не вникал, но зачем тут async/await ?

hamper ?
03.01.2017
18:08:19

Ҫѐҏӗѫӑ
03.01.2017
18:26:44
это не баг

Evgeny
03.01.2017
19:23:21
Ребят, кто-то может помочь в решении тестового задания, подсказать в каком направлении двигаться?

Джон
03.01.2017
19:24:02

Google

Evgeny
03.01.2017
19:25:14
Story
As user I want a tool for evaluating website performance.
Acceptance criteria
It should be a web site, Node.JS (suggestion: you can use bootstrap framework)
It should be a page with text box where user can enter URL
Application has to determine sitemap of requested URL, sends requests to sitemap’s URLs and measure response time (tip: you should not expect that sitemap.xml exists)
Test result should display pages speed graphically (top of the page)
Test result should display page speed as a table (bottom of the page).
Table should contain min and max values for each page
Slowest requests should be on top
It should be possible to evaluate tests result history for tested web sites
Source code for the task should be uploaded to GitHub or Bitbucket
Notes
Approach, tools, database engine can be selected by candidate
It would be super cool in case response time is showed in real time. However it is not required.
Как-то так
Есть у кого какие идеи?


Ҫѐҏӗѫӑ
03.01.2017
19:31:42
есть идея сделать как написано

Dmitrii
03.01.2017
19:31:54
там же по шагам описано все

Ҫѐҏӗѫӑ
03.01.2017
19:31:56
¯\_(ツ)_/¯

Междоус
03.01.2017
19:32:22

Dmitrii
03.01.2017
19:32:37
только я бы нодой запросы не слал, а считерил, дергая через execFile какой нибудь siege, который предоставляет готовую инфу)

Vladimir
03.01.2017
19:32:54
Да ладно, какие проблемы
Тут ни гистограммы строить не надо, ничего персентили считать
Самое сложное - это карту построить
Но тут уж примерно с помощью cheerio
Пройтись
С лимитом переходов

Evgeny
03.01.2017
19:38:16

jdc
04.01.2017
00:24:14
html поддерживает только 3 типа видеофайлов?
"In HTML5, there are 3 supported video formats: MP4, WebM, and Ogg."

Node.js releases
04.01.2017
00:25:53
Node v6.9.3 (LTS)
https://nodejs.org/en/blog/release/v6.9.3
Node v4.7.1 (LTS)
https://nodejs.org/en/blog/release/v4.7.1

Ҫѐҏӗѫӑ
04.01.2017
00:37:19
кому они нужны, бот?
а вот завтра снова проиграешь по v7.4.0