Sailsjs:为所有网站访问者设置一个cookie



我有一个建立在sailsjs上的网站。我希望对整个网站使用的 CTA 进行 A/B 测试......并认为实现这一目标的最简单方法是将 1 或 0 写入 cookie。拥有 1 的用户将获得 CTA 的 A 版;拥有 2 的用户获得版本 B.非常简单。

我遇到麻烦的地方是为所有用户编写cookie - 无论他们首先登陆哪个页面。我看到我如何从控制器轻松执行此操作,但这只会为访问该特定页面的用户编写 cookie......而且我不想在站点上的每个控制器中复制此代码。

有没有人对我如何实现这一目标的正确方法有任何建议?

谢谢。

有几种方法可以在 Sails 中执行此操作。 您经常会在策略中看到类似的事情,但最佳做法是纯粹将策略用于访问控制。 另一种方法是使用自定义中间件,但这对您的情况来说可能是矫枉过正的。 我推荐一个自定义钩子,它很容易配置(并在不同的应用程序中重复使用(:

// 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
        }
      }
    }
  };
};

相关内容

最新更新