2017-03-17 2 views
1

私はsailsjsにウェブサイトビルドを持っています。私は、サイト全体で使用されているCTAのA/Bテストをしたいと考えています。これを達成する最も簡単な方法は、クッキーに1または0を書き込むことだと考えました。 1のユーザーはCTAのバージョンAを取得します。 2人のユーザーはバージョンBを取得します。Sailsjs:すべてのウェブサイト訪問者のためのクッキーを設定してください

私はどこのページに最初に着陸するかに関係なく、すべてのユーザーのためにクッキーを書くことに問題があります。どのように私はコントローラからこれを簡単に行うことができますが、それはその特定のページを訪問するユーザーのためのクッキーを書く...と私はサイト上のすべてのコントローラでこのコードを複製したくない。

私はこれを達成しようとしている人にとって適切なアプローチについて推奨する人はいませんか?

ありがとうございました。

答えて

0

帆でこれを行う方法はいくつかあります。 policyで行われているようなことがよくありますが、アクセス制御のためにポリシーを使用することをお勧めします。別の方法は、custom middlewareを使用することですが、それはあなたの場合にはおそらく過剰です。私は(別のアプリケーションで再利用)設定が簡単でcustom hook、お勧めしたい:

// api/hooks/add-cookie.js 
module.exports = function addCookie(sails) { 

    return { 

    // Add some routes to the app. 
    routes: { 

     // Add these routes _before_ anything defined in `config/routes.js`. 
     before: { 

     // Add a route that will match everything (using skipAssets to...skip assets!) 
     '/*': { 
      fn: function(req, res, next) { 

      // Set the cookie. 
      res.cookie('myCookie', 123); 

      // Continue with the request. 
      return next(); 

      }, 
      skipAssets: true 
     } 
     } 
    } 
    }; 
}; 
+0

ありがとうsgress454を。それはまさに私が探していたものです。 –

関連する問題