2016-09-20 4 views
3

동적 경로를 만들고 싶습니다. users라는 API를 만들었습니다. 그리고 자동으로 생성 된 사용자/ID처럼/users/: nameofuser에 액세스 할 수 있어야합니다.SailsJs의 동적 경로

이 유형의 URL에서 사용자 이름을 얻고 DB에서 검색 할 컨트롤러를 실행하는 방법은 무엇입니까?

나는 routes.js에서이 코드를 시도하지,하지만 나를 위해 작동하지 않습니다

'users/:name': 'UserController.getUser', 

'users/all/:name': 'UserController.getUser' 

나는 항상이 텍스트로 404 오류가 나타날 수 지정된 id 발견 어떤 기록을.

+0

api에서는 대개 api를 호출 할 때 사용하는 'id'입니다. [waterline query language] (http://sailsjs.org/documentation/concepts/models-and-orm/query-language)를 사용하여 이름을 통해 쿼리 할 수 ​​있습니다. – Craicerjack

답변

1

users/:id은 자동으로 UserController.find으로 연결됩니다. 컨트롤러에이 작업이 없으면 ID 매개 변수가 필요한 기본 청사진 작업을 사용합니다. 당신은 여전히 ​​ID로 사용자는 별도의 경로를 생성해야 얻을하려는 경우

find: function (req, res) { 
    var name = req.param('id'); 
    User.findOne({name: name}).exec(function(err, user) { 
     if (err) {return res.serverError(err);} 
     return res.json(user); 
    }); 
} 

: 문제를 해결하기 위해 당신은 단순히 찾기 메소드를 오버라이드 (override) 할 수

'users/:name': 'UserController.getUser', 

getUser: function (req, res) { 
    var name = req.param('name'); 
    User.findOne({name: name}).exec(function(err, user) { 
     if (err) {return res.serverError(err);} 
     return res.json(user); 
    }); 
}