4

我正在运行带有 express-stormpath 的快速服务器以进行身份​​验证并存储有关用户的相同自定义数据。

如何将数据发布到服务器并将它们保存到stormpath?目前我的帖子是这样的:

app.post('/post', stormpath.loginRequired, function(req, res) {
   var stundenplan_data = req.body;
   console.log(stundenplan_data);
   req.user.customData.stundenplan = stundenplan_data;
   req.user.customData.save();
});

我得到了我想在 console.log 中发布的正确数据,但是如果我在另一个 get 请求中调用数据,则自定义数据为空。

4

1 回答 1

4

我是express-stormpath图书馆的作者,我要做的是:

当您将 Stormpath 初始化为中间件时,添加以下设置以自动使 customData 可用:

app.use(stormpath.init(app, {
  ...,
  expandCustomData: true,  // this will help you out
}));

修改您的路线代码,如下所示:

app.post('/post', stormpath.loginRequired, function(req, res, next) {
  var studentPlan = req.body;
  console.log(studentPlan);
  req.user.customData.studentPlan = studentPlan;
  req.user.customData.save(function(err) {
    if (err) {
      next(err);  // this will throw an error if something breaks when you try to save your changes
    } else {
      res.send('success!');
    }
  });
});

您的更改在上面不起作用的原因是您没有先扩展 customData。Stormpath 需要一个单独的请求来“获取”你的 customData,所以如果你不先这样做,事情将无法保存。

上述更改可确保您自动发生这种情况 =)

于 2014-11-17T20:47:54.333 回答