2016-11-08 5 views
0

この質問タイトルは編集されました。元のタイトルはでした。「フォームに文字列を送信して、URLにリクエストパラメータとして適用するにはどうすればよいですか?」html形式でrequest.paramsを入手しますか?


文字列がルートパラメータとして受信される単純なサーバーを考えてください。 localhost:3000/helloは「hello」を含むページを提供します。

これは簡単にここでは、実装されているがそれを行う簡単な特急サーバーです:

var express = require("express"); 
var app = express(); 

app.get("/:string", function(req, res) { 
    res.send(req.params.string); 
}); 

app.listen(3000); 

は、それがフォームを経由して文字列を指定することは可能ですか?

答えて

0

これは隠されたパラメータで始まるものではありませんか?

<form action="http://www.example.com" method="GET"> 
    <input type="hidden" name="a" value="1" /> 
    <input type="hidden" name="b" value="2" /> 
    <input type="hidden" name="c" value="3" /> 
    <input type="submit" /> 
</form> 

アクションURLに既存のクエリ文字列を保持しているブラウザはカウントされません。仕様として

は(RFC1866、46ページ、HTML 4.xのセクション17.13.3)状態:

方法は、「取得」とアクションがHTTP URIである場合は、ユーザーエージェントは、の値をとりますアクションに `? 'これに「application/x-www-form-urlencoded」コンテンツタイプを使用してエンコードされたフォームデータセットを追加します。 アクションURLをパーセントでエンコードして疑問符とパラメータを埋め込んだり、すべてのブラウザがそのURLをそのまま残して(サーバーがそれを理解できることを検証してもらいたい)人の指を渡すこともできます。しかし、私は決してそれに頼るつもりはない。

ところで、非表示のフォームフィールドでは違いはありません。 POSTの場合、アクションURLはクエリ文字列を保持することができます。 htmlフォームを経由してreq.paramsに値を割り当てる

0
  • は、本質的には不可能です。 フォームは、req.queryに簡単に値を割り当てます。エクスプレス4.x API Referenceに記載REQ、paramsは及びreq.queryため

  • 定義:

req.params
このプロパティは、名前付きのルート「パラメータ」にマッピングされたプロパティを含むオブジェクトです。たとえば、route/user /:nameがある場合、 "name"プロパティはreq.params.nameとして使用できます。このオブジェクトのデフォルトは{}です。

req.query
このプロパティは、ルート内の各クエリ文字列パラメータのプロパティを含むオブジェクトです。クエリ文字列がない場合は、空のオブジェクト{}です。このquestion

  • Arjanの答えは、特定のユースケースで役に立つことができ隠しタイプの入力を挙げています。
関連する問題