@abusabir

Вопрос по koa. Что у нас в next?

У меня не было опыта с Express, может быть поэтому и непонятен простой момент.
В простом примере приложения на koa у нас передаётся генератор с параметром next, который потом yield-ится внутри приложения. Для чего это делается?

app.use(function* (next) {
    if (this.request.path === '/') {
        this.response.body = 'hello world';
    } else {
        yield next;
    }
});


update: Кажется проясняется. Вся странность связана с тем, что в подобном примере это не так-то и нужно, а если таких middleware будет несколько, то они будут друг другу передавать управление. Правильно?
  • Вопрос задан
  • 226 просмотров
Решения вопроса 1
@Aves
Да, правильно. Middleware должно либо завершить запрос, либо вызвать следующее.
app.use(function* (next) {
    if (this.request.path === '/') {
        this.response.body = 'hello world';
    } else {
        //yield next;
    }
});
app.use(function* (next) {
    this.response.body = 'hello world not from root';
    yield next;
});

Без next будет срабатывать только обращение к /, с next - к любому адресу.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы