有了Sails.js,我怎样才能让/ users / me成为一个与协会合作的路线呢?
我有一个主要的模型Accounts
,那么我有几个Has Many
模型,如Notifications
和Friends
在我的main.js
我希望能够做到这样的事情:
socket.get('/users/me/notifications');
而不是像:
socket.get('/users/ + g_userAccountId + '/notifications');
^^这是适用于现在,但它是asynchronous设置,所以如果任何代码加载g_userAccountId
之前设置它将尝试使用undefined
而不是很糟糕..非常不好..
我了解政策和所有我只是想知道如何使用REST蓝图工作,而不是什么。 如果我不清楚,请让我知道
有没有办法做到这一点,而不是在每个控制器中设置findOne
方法? 喜欢自动填写/me/
1
我可以想象,在每个控制器中设置findOne方法的最简单方法是创build一个匹配/users/me/notifications
路由的策略,将其redirect到当前会话的用户ID。 您可能会使用类似以下的内容,并更新/config/policy
文件。
if (session.authenticated) { return res.redirect('/users/' + req.session.user.id + '/notifications'); }
如果您希望在/users/me
路由被选中时做一些处理,您可以修改此策略,调整req.url并redirect到使用用户标识的新路由,并将其应用于策略中的所有相关路由configuration文件,或设置一个自定义中间件来处理问题的方式相同。