2017-09-17 23 views
0

を処理ルート(「/フォーム」)を書く私はnodeschool.io上nodejsとexpressjsのためのワークショップに出席し、この演習に出くわしたが、私はそれが動作しない解決策を試してみたときにしています。HTMLフォーム入力

私は、フォームのために作成されている任意の経路が表示されません。

私が見つけた解決策は次のとおりです。

var express = require('express'); 
var path = require('path'); 
var app = express(); 

var bodyparser = require('body-parser'); 


app.use(bodyparser.urlencoded({extended: false})); 

app.post('/form',function(req,res){ 
    //res.sendFile(path.join(__dirname + '/public/index.html')); 
    res.send(req.body.str.split(" ").reverse().join(" ")); 
}); 

app.listen(Number(process.argv[2])); 

誰も私を助け、提供ソリューションと間違っているものを私に教えてもらえますか?

答えて

0

あなたが提供したコードから、ルートはPOST HTTP要求に呼び出されます。したがって、フォームを送信した後に呼び出され、HTMLレンダリングは(エンドポイントからこのように離れる場合は)責任を持ちません。

ただし、HTMLのレンダリングになるコメント行は、(おそらく、index.htmlファイルは、フォームが含まれている?)がある見ることができます。その作業を行うには、新しいルートを作成することができます。

app.get('/form', ...) 

これはHTMLファイルとフォームを返します。

+0

私は、POST HTTPリクエストが動作されたかどうか確認するために、その行をコメントしました。しかし、コメントを外してスクリプトを実行すると、次のようになります。GET /フォームできません。私はGETメソッドの代わりにPOSTメソッドを使いたいと思っていました。 – Anamika

+0

app.post関数を使用するので、GETを使用することはできません。それをapp.getに変更すると、HTMLが返されます。フォーム送信を待っているapp.postという2番目の関数を作成します。 – cassini

1

フォームを取得するためのapp.post要求の前にapp.get要求を使用しています。

です。

app.get('/form',function(){}); 

、その後

app.post('/form',function(){});