Ben şöyle bir rota:Express.js yönlendirme: isteğe bağlı tükürük param?
app.all('/path/:namedParam/*splat?',function(req,res,next){
if(!req.params.length){
// do something when there is no splat
} else {
// do something with splat
}
});
ancak bu çalışmıyor - Ben path/foo/bar
çağırırsanız o rotayı vurur ama path/foo
çağırırsanız, öyle değil.
İsteğe bağlı bir uyarlama param var mı, yoksa bunu algılamak için düzenli olarak kullanmak zorunda mıyım?
Düzenleme:
net olmak gerekirse, burada elde etmek çalışıyorum gereksinimleri şunlardır:
- gerekli
- ilk param statik olan birinci ve ikinci parametreler , ikinci bir adlandırılmış param.
- herhangi bir sayıda isteğe bağlı ek param eklenebilir ve yine de rotaya vurulabilir.
Ne yapmaya çalışıyorsunuz?uyarısı bilmeniz gerekmiyorsa, sadece '/ yol /: firstParam/*' 'yapın. İhtiyacınız varsa, ''/yol /: firstParam /: secondParam?/* ''Yapın. –
Uyarımın isteğe bağlı olmasını istiyorum - verdiğiniz ilk örnek '/ path/foo 'ile eşleşmeyecektir (isteğe bağlı uyarılar istemeden önce rotam yolum böyle görünüyordu). Buna ek olarak, ikinci örneğinizde, splat eklemenin eklenmesi isteğe bağlı olarak ikinci paramı geçersiz kılar - '/ yol/foo 'ikinci paterninizle eşleşmeyecektir (bu konu için' '/ path/foo/bar' =' '- 'yönlendiricinin daha rahatsız edici kısımları. – Jesse
şahsen ben/path /: firstParam ve '/ path /: firstParam /: secondParam /' için paylaşılan bir denetleyiciye sahip iki ayrı yönlendirici olarak gideceğim. senin URL'lerini karıştırmaya gerek yok –