Node.js+Expressでpostを使う!
Node.js+Expressでpostを使う!
前回やったこと
・Node.jsでgetを扱う。(クエリによってページ内の文言出しわけ)
今回はExpressでのpostについて書いていきたいと思います。
POST送信について
postはHTTPメソッドのうちの一つで、HTTPメソッドにはほかにもget,put,deleteとかあります。
HTTPメソッドっていうのは、ブラウザからサーバーに送るリクエストの種類のことです。
postだとHTTPリクエストボディに値を入れてサーバに送る。
以下の例はresultページにformからアクセスしたときに、formの値を取ってresultページに表示しています。
result.js
router.post('/', function(req, res, next) { var name = req.body.name; var age = req.body.age; res.render('result', { title: "結果!", name: name, age: age }); });
req.bodyでHttpレスポンスボディから値を取得しています。.nameや.ageは値を取り出すためのキーです。
app.js
var resultRouter = require('./routes/result'); app.use('/result',resultRouter);
index.ejs
<h1><%= title %></h1> <p>Welcome to <%= title %></p> <form action="./result" method="post"> <input type="text" name="name" placeholder="name"> <input type="text" name="age" placeholder="age"> <input type="submit" value="送信!"> </form>
result.ejs
<body> <h1このページのタイトルは><%= title %>です!</h1> <ul> <li>名前:<%= name %></li> <li>年齢:<%= age %></li> </ul> </body>
これでlocalhost:3000/にアクセスしてform入力から送信ボタンを押すとresultページにpost通信されます!
あとはresult.jsのミドルウェア関数で処理してあげる感じです。
resultページに入力した名前と年齢が表示されるかと思います。
以上がpostの基本的な使い方でした!