2011-06-23 53 views
13

在URI的查询部分指定布尔值的首选方法是什么?一个正常的查询字符串看起来像URI查询中的布尔值?

a=foo&b=bar 

说我有一个参数 “C” 与布尔值,我应该声明

a=foo&b=bar&c=1 

或者

a=foo&b=bar&c=True 

或者

a=foo&b=bar&c=true 

我检查了查询组件sectio n的RFC 2396,它没有指定如何表达布尔参数。所以我想知道的是通用(或合理)的方法是什么?

+2

的URI规范(RFC时下3986)根本不关心。 –

+1

我会说什么是最简单的 - 即如果你在java中,Boolean.parseBoolean(“true”)... – Blaskovicz

回答

10

它完全取决于您阅读查询字符串的方式。所有这些你要求的都是有效的。

2

在具有快速服务器的节点中,可以添加一个布尔分析器中间件,如express-query-boolean

var boolParser = require('express-query-boolean'); 

// [...] 

app.use(bodyParser.json()); 
app.use(boolParser()); 

没有

// ?a=true&b[c]=false 
console.log(req.query); 
// => { a: 'true', b: { c: 'false' } } 

随着

// ?a=true&b[c]=false 
console.log(req.query); 
// => { a: true, b: { c: false } }