Express JS를 사용 중이며 장고의 reverse
기능과 비슷한 기능을 원합니다. 내가 예를Express JS 역 URL 경로 (Django 스타일)
app.get('/users/:id/:name', function(req, res) { /* some code */ })
를 들어, 경로가 있다면 그래서 예를
에 대한reverse('/users/:id/:name', 15, 'John');
또는 더 나은 기능을 사용하고 싶습니다
reverse('/users/:id/:name', { id : 15, name : 'John' });
나에게 URL을 줄 것이다 /users/15/John
. 그런 기능이 있습니까? 그리고 그런 경우가 아니라면 (Express의 라우팅 알고리즘을 고려할 때) 그러한 기능을 작성하는 방법에 대한 아이디어가 있습니까? 난 그냥 라우팅을위한 다른 문제에 따라이 문제를 해결 패키지 reversable-router을 만들었습니다
function reverse(url, obj) {
return url.replace(/(\/:\w+\??)/g, function (m, c) {
c=c.replace(/[/:?]/g, '');
return obj[c] ? '/' + obj[c] : "";
});
}
reverse('/users/:id/:name', { id: 15, name: 'John' });
reverse('/users/:id?', { id: 15});
reverse('/users/:id?', {});
나는 이런 식으로 뭔가에 대해 생각 (실제로 나는이 간단한 경우를 구현했다)하지만, unfortunetly Express는'사용'특수 문자로?. 이것은'/ users/: id? 'URL에 대해'/ users'와'/ users/1'가 모두 일치하기 때문에 상황을 좀 더 복잡하게 만듭니다. – freakish
업데이트 됨. 너가 원하는게 그거야? – cababunga
그래, 그 일을 할 것 같아. 감사! – freakish