Express JS kullanıyorum ve Django'nun reverse
işlevine benzer bir işlev istiyorum. Ben örnekExpress JS ters URL yolu (Django stili)
app.get('/users/:id/:name', function(req, res) { /* some code */ })
için, bir rota varsa Yani örneğin
içinreverse('/users/:id/:name', 15, 'John');
veya daha iyi bir işlevi kullanmak istiyorum
reverse('/users/:id/:name', { id : 15, name : 'John' });
bana url verecek olan /users/15/John
. Böyle bir işlev var mı? Ve eğer değilse o zaman böyle bir işlevin nasıl yazılacağı konusunda bir fikriniz var mı (Express 'yönlendirme algoritması dikkate alınarak)? Sadece yönlendirme için diğer sorunlar birlikte bu çözer paketi reversable-router oluşturduk
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?', {});
böyle bir şey düşündü (ve aslında bu basit durumda uygulamak did), ancak unfortunetly Ekspres 'kullandığı' özel karakter olarak?. Bu, işleri biraz daha karmaşık hale getirir, çünkü url '/ users /: id?' Için ''/users' ve '/ users/1' her ikisi de eşleşir. – freakish
Güncellendi. İstediğin bu mu? – cababunga
Evet, bence bu iş yapacak. Teşekkürler! – freakish