Sails.js – 使用login,而不是id为REST api

我正在使用Sails.js框架,并有login字段的User模型。

我也有User控制器,允许我发送请求

 http://localhost:1337/user/:id 

它返回给定的用户数据。 不过,我宁愿使用用户login,而不是用户名,所以我可以使用/user/mylogin而不是/user/564a0aacecf0e8fb20c38a4e 。 有没有办法做到这一点,而无需自己创build路线(我喜欢帆如何处理所有的默认路线,包括/user/:id/comments这样的关系,我不想重build所有这些只是使用login,而不是id)

你可以做/ user?login = username。 这是由帆的蓝图API处理: http : //sailsjs.org/documentation/reference/blueprint-api/find-where

如果你真的想要它,你可以拥有它。 但是你必须弄脏你的手。 有几种可能的方式。 但是我指着你看我最简单的方法。

  1. 在你的config/routes.js添加一个如下的路由。

     '/user/:myLogin': { controller: 'user', action:'getUserByUserLogin' } 
  2. 在你的api/controller/UserController.js添加一个名为getUserByUserLogin的动作。 您可以使用req.param("myLogin")从控制器操作的请求对象访问myLogin值。

     module.exports = { getUserByUserLogin: function(req, res){ var myLogin = req.param("myLogin"); /* Do whatever you want */ } };