2016-07-11 7 views

答えて

0

KeystoneJS grappling-hookを使用しています。 callHookを使うことができる理由です。 node_modules /キーストーンで

/あなたはこのコード

var grappling = require('grappling-hook'); 

grappling.mixin(this).allowHooks('pre:static', 'pre:bodyparser', 'pre:session', 'pre:routes', 'pre:render', 'updates', 'signout', 'signin', 'pre:logger'); 

を見ることができますindex.js私はわかりませんが、彼らは本当に存在しませんので、あなたが実際のフックを見つけていません。

方法は、キーストーンで定義されており、単にそれらをhoockableなり取り組むされています。例えばサインインはキーストーンインスタンスで定義された方法であり、グラップルはそれをホッケー可能にした。 ここでは、署名が完了した後の対処方法を示します。

keystone.callHook(user, 'post:signin', function (err) { 
     if (err) return res.json({ error: 'post:signin error', detail: err }); 
     res.json({ success: true, user: user }); 
}); 

だから素人用語で、あなたは...ヘイのキーストーンは、このユーザーが署名された後、私の関数を呼び出す。そして、台形内部にはコードが実際に存在しないことのために言ってrを。

MY知識がここに限定されているユーザーが渡されたか、このユーザーがログインしたときにのみ起こることをどのように。私が思うに、我々はまだいくつかの専門家はここに点灯する必要があります。

+0

ありがとうございました。私はそれをはるかに持っていますが、実際のフックはどこにも見ません。あなたが作成する必要があるところで、そして/または、その1つの例について、もう少し詳しく説明できますか?たとえば、投稿:signinフックを追加したい場合は、作成したfuncを見つけるためにgrappling-hookを接続するにはどうすればよいですか? – user166879

+0

keystone.callHook(NEWUSER、「ポスト:サインイン」、機能(ERR){} – enRaiser

+0

ああ、私の混乱だったので - である - 私はcallHook(予想)実際には、それは実際にだとき、他の場所で定義されていますフックを呼び出すために?ときにこれ等を定めると同時に、フック関数を呼び出す。3番目のパラメータは、フック関数である。Node.jsのの – user166879

0

私は特定のモデルがデータベースに追加されたたびに呼び出される関数に必要なユースケースを持っていました。私はあなたがそのような結果を達成するために特に投稿ミドルウェアMongoose middlewareを使用できることを知りました。だから、私の場合は、新しい製品が追加または更新されるたびに関数を実行するProductスキーマがありました。次のように追加するのは簡単でした:

関連する問題