使用 Sails.js 我怎样才能使 /users/me 与关联一起工作的路线?
With Sails.js how can I make /users/me a route that works with associations?
我有一个主模型 Accounts
,然后我有几个 Has Many
模型,例如 Notifications
和 Friends
在我的main.js
我希望能够做如下事情:
socket.get('/users/me/notifications');
而不是喜欢:
socket.get('/users/ + g_userAccountId + '/notifications');
^^ 目前有效,但它是异步设置的,因此如果在设置 g_userAccountId
之前加载任何代码,它将尝试使用 undefined
代替,这很糟糕......非常糟糕。 .
我了解政策和所有这些,我只是想知道如何使用 REST 蓝图来完成这项工作,而不是什么。如果我不清楚请告诉我
有没有办法不在每个控制器中设置 findOne
方法就可以做到这一点?喜欢用1
自动填/me/
如果不在每个控制器中设置 findOne 方法,我能想到的最简单的方法是创建一个匹配 /users/me/notifications
路由的策略,将其重定向到当前会话的用户 ID。您可能会使用如下内容,并更新 /config/policy
文件。
if (session.authenticated) {
return res.redirect('/users/' + req.session.user.id + '/notifications');
}
如果你想在 /users/me
路由被命中时做一些处理,你可以修改这个策略,调整 req.url 并重定向到使用用户 ID 的新策略,并且将其应用于策略配置文件中的所有相关路由,或设置一个 custom middleware 以同样的方式处理问题。
我有一个主模型 Accounts
,然后我有几个 Has Many
模型,例如 Notifications
和 Friends
在我的main.js
我希望能够做如下事情:
socket.get('/users/me/notifications');
而不是喜欢:
socket.get('/users/ + g_userAccountId + '/notifications');
^^ 目前有效,但它是异步设置的,因此如果在设置 g_userAccountId
之前加载任何代码,它将尝试使用 undefined
代替,这很糟糕......非常糟糕。 .
我了解政策和所有这些,我只是想知道如何使用 REST 蓝图来完成这项工作,而不是什么。如果我不清楚请告诉我
有没有办法不在每个控制器中设置 findOne
方法就可以做到这一点?喜欢用1
/me/
如果不在每个控制器中设置 findOne 方法,我能想到的最简单的方法是创建一个匹配 /users/me/notifications
路由的策略,将其重定向到当前会话的用户 ID。您可能会使用如下内容,并更新 /config/policy
文件。
if (session.authenticated) {
return res.redirect('/users/' + req.session.user.id + '/notifications');
}
如果你想在 /users/me
路由被命中时做一些处理,你可以修改这个策略,调整 req.url 并重定向到使用用户 ID 的新策略,并且将其应用于策略配置文件中的所有相关路由,或设置一个 custom middleware 以同样的方式处理问题。