天天看點

nodejs實作表單資料的送出

該篇文章實作的是把一個頁面的表單資料送出到nodejs編寫的背景。寫的不足之處請多多諒解。

index.html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>表單上傳</title>
</head>
<body>
<form action="http://127.0.0.1:9999/dopost" method="post" >
    姓名:<input type="text" name="name"><br>
    年齡:<input type="number" name="age"><br>
    性别:<input type="radio" name="sex" value="man">男<input type="radio" name="sex" value="woman">女</br>
    愛好:<input type="checkbox" name="checkbox" value="籃球">籃球<input type="checkbox" name="checkbox" value="足球">足球
    <input type="checkbox" name="checkbox" value="lol">lol<br>
    <input type="file" name="file"><br>
         <input type="submit"></input>
</form>
</body>
</html>
           

node.js

var http = require('http');
var querystring = require('querystring');
var server = http.createServer(function(req,res){
    if(req.url=='/dopost'&& req.method.toLowerCase() == 'post'){
        var alldata ='';
        req.on('data',function(chunk){
            alldata+=chunk;
        })
        req.on('end', function () {
            var datastring = alldata.toString()//得到的是一個字元串 需要解析
            var obj= querystring.parse(datastring);//定義一個對象來存放解析後的值
            console.log(obj.name);
            console.log(obj.age);
            console.log(obj.sex);
            console.log(obj.checkbox[]);
            console.log(obj.file);//擷取的隻是檔案名,檔案是沒有被上傳的,建議使用nodejs的formodable子產品實作檔案的上傳。
            res.end('請求成功')
        })
    }
})
server.listen(,'127.0.0.1');//設定監聽端口和監聽位址
           

繼續閱讀