我有一个基于sailsjs的网站。我正在寻找对整个网站使用的CTA进行A / B测试....并认为实现这一目标的最简单方法是将1或0写入cookie。用户1获得CTA版本A;用户2获得版本B.非常简单。
我遇到问题的地方是为所有用户编写cookie - 无论他们首先登陆哪个页面。我看到如何从控制器轻松地执行此操作,但这只会为访问该特定页面的用户编写cookie ...而且我不想在站点上的每个控制器中复制此代码。
对于我如何努力实现这一目标,是否有人对正确的方法有任何建议?
感谢。
答案 0 :(得分:0)
在Sails中有几种方法可以做到这一点。您经常会在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
}
}
}
};
};