2014-10-10 18 views
5

Express.js uygulamasına iletilen bir sorgu dizesinin herhangi bir değer içerip içermediğini nasıl kontrol ederim? Bir URL URL'm varsa: http://example.com/api/objects veya http://example.com/api/objects?name=itemName: Hangi koşullarla çalıştığımın hangisi ile çalıştığımı belirlemek için hangi ifadeleri kullanırsınız?Sorgu dizesinin Express.js/Node.js'de değerleri olup olmadığını nasıl kontrol ederim?

Şu anki kodum aşağıda ve 'her zaman dize olmamalı' seçeneğine göre değerlendiriliyor. Bu

if (!req.query.name) { 
    console.log('should have no query string'); 
} 
else { 
    console.log('should have query string'); 
} 
+1

Bunun node' desteği 'emin ama belki kullanabilirsiniz Değil, yanlış bir şekilde [Bu cevap] (http: // stackoverflow .com/a/5533226/2708970) 'req.query' uzunluğunun 0'dan büyük olup olmadığını kontrol etmek için –

+0

Express kullanıyor musunuz? – JME

cevap

15

deneyin tek param arıyorsanız hiçbir sorgu dizesi olup olmadığını kontrol etmek istiyorsanız, bir normal ifade arama yapabilirsiniz

if (req.query !== {}) { 
    console.log('should have no query string'); 
} 
else { 
    console.log('should have query string'); 
} 
+0

Teşekkürler! Evet, bu hata, gerçek kodumu soruya dönüştürmede yazım hatasıydı. – blundin

1

,

if (!/\?.+/.test(req.url) { 
    console.log('should have no query string'); 
} 
else { 
    console.log('should have query string'); 
} 

Tek yapmanız gereken Object numaralı anahtarınızın anahtarlarını kontrol ediyor. Buna benzer,


Sidenote: Sen ima ediyorsun if-else

if (req.query !== {})  // this will run when your req.query is 'NOT EMPTY', i.e it has some query string. 
İlgili konular