web-dev-qa-db-ja.com

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

RFC 2396 のクエリコンポーネントセクションを確認しましたが、ブールパラメータの表現方法が指定されていません。だから私が知りたいのはそれを行うための一般的な(または合理的な)方法は何ですか?

32
Clint

クエリ文字列の読み方に完全に依存します。あなたが求めるこれらのすべてが有効です。

15
Petar Ivanov

高速サーバーのあるノードでは、 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 } } 
4
nicholas

またはこれを行うことができます

const queryBool = unwrapTextBoolean({{{A_WAY_TO_GET_THAT_TEXT_BOOLEAN}}})
if(queryBool===null) {return;}
if(queryBool){
   /*true-based code*/
}else{
   /*false-based code*/
}

function unwrapTextBoolean(tB){
  if(tB === 'true') return true;
  if(tb === 'false') return false;
  return null;
}
0