4

投稿するhtmlフォームは次のとおりです。

<html>
<body>
<h1>Home Html Page</h1>
<a href="/Product/Index">Go To Product</a>
<hr/>
<form action="/Home/Index" method="POST" name="form1">
    Enter Text:
    <input type="text" id="txtInput"/>
    <button id="btnPost">Post Data</button>
</form>
</body>
</html>

投稿されたデータを取得する JavaScript コードは次のとおりです。

function Server(req, resp) {
    if (req.method == 'POST') {
        var chunk = '';
        req.on('data', function (data) {
            chunk += data;
        });
        req.on('end', function () {
            console.log(chunk + "<-Posted Data Test");
        });
    }'

    ...

    resp.write(...);
    resp.end();
}

手伝って頂けますか?私はnodejsが初めてなので、例を見せてもらえますか?

4

1 に答える 1

10

name次のように<input>要素にを指定する必要があります。

<input name="txtInput" type="text" id="txtInput">

セットされているものだけnameが投稿されます。

例:

var http=require('http');
var util=require('util');
var querystring=require('querystring');

var server=http.createServer(function(req,res){
    if (req.method=='GET'){
        res.end('<form action="/Home/Index" method="POST" name="form1">Enter Text:<input name="txtInput" type="text" id="txtInput"/><button type="submit" id="btnPost">Post Data</button></form></body></html>');
    }else{

        var chunk = '';
        req.on('data', function (data) {
            chunk += data;
        });
        req.on('end', function () {
            console.log(chunk + "<-Posted Data Test");

            res.end(util.inspect(querystring.parse(chunk)));
        });

    }
}).listen(8080);

フォームデータを解析するには、querystring.parse (str、[sep]、[eq])を使用します(上記の例のように)

例:

querystring.parse('foo=bar&baz=qux&baz=quux&corge')
// returns
{ foo: 'bar', baz: ['qux', 'quux'], corge: '' }
于 2012-04-11T20:02:38.323 に答える