我正在运行带有express-stormpath for auth的快速服务器,并存储有关用户的相同自定义数据。
如何将数据发布到服务器并将其保存到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请求中调用数据,则自定义数据为空。
答案 0 :(得分: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,所以如果你不先这样做,事情将无法保存。
上述更改可确保您自动执行此操作=)