2015年9月7日 星期一

node.js 使用 express 及 body-parser 讀取表單資訊

node.js 使用 express 及 body-parser 讀取表單資訊

 


在寫web 程式的時後常常會需要讀取 html 表單 form 傳送而來的資訊,而在 node.js 中可以使用 express + body-parser 這二個套件組合,透過「request.body.變數名稱」的方式來快速的處理並取出 http post 內 form 所傳入的物件內容。







 


 


當然要先透過 npm 來安裝 express 套件以及 body-parser 套件。


npm install express


npm install body-parser


 




寫一個簡單的html來 submit form 的二個變數 (user, password) 至 node.js 寫的簡單 http server。




test_form.htm


<script src="https://google-code-prettify.googlecode.com/svn/loader/run_prettify.js"></script>


<pre class="prettyprint">


<html>


  <head>


    <title>Simple login</title>  


  </head>


  <body>


    <form  action="http://localhost:3000/login" method ="post" >


    <h1> Please input ID PWD</h1>


    ID:<input type="TEXT" name="user" ><br>


    PWD:<input type="password" name="password" ><br>


    <input type="submit" value="Click">


    </form>


  </body>


</html>


</pre>


<br />









寫一個簡單的 node.js server site program 來接收並展示 form post 傳入的資訊。




tryExpress.js


var express        =         require("express");


var bodyParser     =         require("body-parser");


var app            =         express();


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


app.get('/',function(req,res){


  res.sendfile("index.html");


});


app.post('/login',function(req,res){


  res.writeHead(200, {'Content-Type': 'text/html'});


  var user_name=req.body.user;


  var password=req.body.password;


  console.log("User name = "+user_name+", password is "+password);


  res.write(user_name+'<BR>');


  res.write(password+'<HR>');


  res.end("yes");


});


app.listen(3000,function(){


  console.log("Started on PORT 3000");


})




沒有留言: