Expressをやっていて、クライアント側からデータを受け取る時の動作がよくわかりません。
localhost:3000/に入力フォームがあり、隣のボタンクリックでpostメソッドにアクセスするごく簡単なものを作成したのですが、一番目のコードでは処理が止まってしまい(postは出力されるものの、dataとendが実行されない)二番目のコードではうまくいきました。
同じ、データを受け取ってクライアントに投げる処理なのに、なぜ一番目のコードではうまく動かないのでしょうか?
よろしくお願いします。
javascript
1router.post("/post", (req, res, next) => { 2 console.log("post"); 3 4 req.on('data', (data) => { 5 console.log("data"); 6 body += data; 7 }); 8 9 req.on("end", () => { 10 console.log("end"); 11 var post_data = qs.parse(body); 12 msg = "あなたは" + post_data.msg + "と書きました。"; 13 var data = { 14 title: "others", 15 msg: msg 16 }; 17 18 res.render("others", data) 19 }); 20});
javascript
1router.post("/post", (req, res, next) => { 2 console.log("post"); 3 msg = req.body["msg"]; 4 var data = { 5 title: "others", 6 msg: msg 7 }; 8 9 res.render("others", data) 10});
html
1<form method = "post" action = "/others/post"> 2 <p> 3 <input type = "text" name = "msg" > 4 <input type = "submit" value = "Click" > 5 </p> 6</form>
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/03/19 04:32