Dmitry
Смотри подробнее на функцию resolve(), ее вызов говорит промису, что все ок, можно идти дальше
Pavel
подскажите пожалуйста как в коа использовать разные проверки (middleware) для разных роутов. К примеру на серве есть ui часть, которая работает через jwt и все урлы нужно проверять на jwt. и есть просто апи методы, в которых нужно выставить специальный хедер, который не нужен в jwt и наоборот этим роутам не нужна авторизация по jwt. Как это можно сделать?
Bushrut
что нужно передать в 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)
})
Bushrut
в упор не понимаю
I am
Может file.end(resolve...
I am
Это тема про стримы
Roman
такой неожиданный вопрос, а для чего вы ипользуете модели, кроме валидации?
Roman
и еще, кто следит, в 8 ноду упадут es6 модули?
Pavel
неужели никто не знает как разделить проверки для роутов в коа? чтобы не было конфликтов?
Nook
?
Nook
В чем проблема на входе смотреть заголовок и использовать middleware или идти дальше?
Nook
А если еще роуты используешь, так я вообще не вижу проблемы
Nook
https://github.com/alexmingoia/koa-router
Nook
7 версия для koa@next
Nook
Это мастер ветка
Pavel
Nook
У тебя есть middleware
Nook
В нем условие поставить
Nook
if() { return next() }
Nook
Т.е не использовать дальше middleware
Mykola
наоборот, перейти к след. мидлваре, т.е. к роуту например
Pavel
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());
Pavel
это проверка на хедер
Pavel
а как быть с jwt ? у меня такой код
app.use(jwt({
secret: publicKey,
algorithm: 'RS256'
}));
Nook
jwt({
secret: publicKey,
algorithm: 'RS256'
})
Возвращает тебе анонимную функцию
Nook
Которая принимает ctx и next
Nook
Главное не пересоздавай ее внутри middleware
Nook
А то херня получится )
Pavel
вроде идею понял, по коду пока не понимаю как оно :( не сталкивался с таким до этого момента
Nook
const jwtMiddleware = jwt({
secret: publicKey,
algorithm: 'RS256'
});
Pavel
это я понял, а использовать дальше jwtMiddleware в каком контексте и как, вот это я не понял, именно как это связать с проверкой хедера\
Nook
app.use(async (ctx, next) => {
await jwtMiddleware(ctx, next);
});
Pavel
ну и получается дальше идут роуты, которые работают через jwt так?
Nook
Лучше тогда использовать https://github.com/alexmingoia/koa-router
Nook
Почему таким путем не пойдешь?
Pavel
его и использую, я не хочу в каждом методе проверять jwt или хедер
Pavel
с ростом методов будут копироваться проверки, а так все проверки выкатил наружу в middleware
Nook
koa@0.*
Nook
https://camo.githubusercontent.com/4bafe27df6fb198d66e134a3f977fcfc4ad75ff5/687474703a2f2f68336d616e74682e636f6d2f692f6b6f616a732e676966
Pavel
Nook
Это старая koa
Nook
Но сути не меняет
Nook
Это даже не 1.*
Pavel
вот на данном этапе у меня вот так:
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());
Pavel
routes() и anotherRoutes() это koa-routes routes()
Pavel
но такой код неправильный
Pavel
пытался отдельные апы сделать в которых свои middleware есть и через koa-mount собрать все в один, но в таком случае на любой запрос падает на серваке ошибка TypeError: next is not a function
Максим
сори, не вникал, но зачем тут async/await ?
Anonymous
это не баг
Yevhen
Ребят, кто-то может помочь в решении тестового задания, подсказать в каком направлении двигаться?
Джон
Yevhen
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.
Yevhen
Как-то так
Yevhen
Есть у кого какие идеи?
Anonymous
есть идея сделать как написано
Dmitrii
там же по шагам описано все
Anonymous
¯\_(ツ)_/¯
Alexander =̂• ̺ •̂=
Dmitrii
только я бы нодой запросы не слал, а считерил, дергая через execFile какой нибудь siege, который предоставляет готовую инфу)
Vladimir
Да ладно, какие проблемы
Vladimir
Тут ни гистограммы строить не надо, ничего персентили считать
Vladimir
Самое сложное - это карту построить
Vladimir
Но тут уж примерно с помощью cheerio
Vladimir
Пройтись
Vladimir
С лимитом переходов
Yevhen
Quiet
html поддерживает только 3 типа видеофайлов?
"In HTML5, there are 3 supported video formats: MP4, WebM, and Ogg."
Node.js releases
Node v6.9.3 (LTS)
https://nodejs.org/en/blog/release/v6.9.3
Node.js releases
Node v4.7.1 (LTS)
https://nodejs.org/en/blog/release/v4.7.1
Anonymous
кому они нужны, бот?
Anonymous
а вот завтра снова проиграешь по v7.4.0
Anonymous
я спрашивал в твиттере, пока не назвали ни одного
Anonymous
но пошутили про похмелье.жс
Anonymous
о, а v7.4.0 не будет уже завтра лол
Anonymous
надо же
Anonymous
будет v7.3.1
Vitaly
Anonymous
о, а там может и 7.4 все же