2016-05-11 2 views
0

Я следую за the tutorial. В Asynchronous hooks, есть фрагмент кода, как это:Понимание FeathersJS крючки

todoService.before({ 
    find(hook) { 
    return this.find().then(data => { 
     hook.params.message = 'Ran through promise hook'; 
     hook.data.result = data; 
     // Always return the hook object 
     return hook; 
    }); 
    } 
}); 

пожалуйста дайте мне знать, что this.find() должен делать?

ответ

2

find является Feathers service method и this является the service the hook is running on.

+0

Таким образом, поток будет: 1. Крючок вызовет услугу для изменения связанных данных. 2. Услуга активируется по модифицированным данным. Правильно? – anhldbk

+0

А, я вижу проблему, 'hook.data.result = data;' здесь не очень полезно. Я взял его из документации. В основном он вызывает метод 'find'. Затем вы можете что-то сделать с этими данными и, например, добавьте некоторую информацию с помощью 'hook.params.message', которая затем будет доступна в следующих перехватах, а метод службы -' params'. «before' hooks позволяют изменять запрос, параметры и данные, представленные пользователем (например, проверку), где« after' hooks »позволяют изменять возвращаемые данные. – Daff

+0

Ну, я думаю, у нас должна быть «лучшая демо»! Вместо того, чтобы позволить 'find hook' называть' find service' (а затем 'find service' выполняется еще раз), мы должны делать такие вещи, как:' hook.app.service ('messages'). Find(). Then() '. Я думаю, что гораздо понятнее понять код. – anhldbk