在寫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");
})
沒有留言:
張貼留言