有了Sails.js,我怎样才能让/ users / me成为一个与协会合作的路线呢?

我有一个主要的模型Accounts ,那么我有几个Has Many模型,如NotificationsFriends

在我的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文件,或设置一个自定义中间件来处理问题的方式相同。