nodejs獲取表單數據的三種方法實例

前言

nodejs作為服務端語言,在開發中註冊登錄等需通過form表單向後端發送數據進行判斷,那作為服務端語言的nodejs通過哪些方法可以接收調用form表單的post請求值呢。

常見的會用到以下三種,讓我們對著例子看看具體用法。

後端我們使用express插件,需要對express有所瞭解的才便於閱讀哦~

1、首先npm初始化,下載express包,導入模塊後創建服務對象

//導入express模塊
const express = require("express");
// 創建服務器對象
const app = express();

form表單傳遞

這種通過from表單的特性,可以點擊表單中button的type為submit的按鈕,會提交表單數據。形式是以一種對象方式,屬性名為input標簽中name值,屬性值為input標簽value值,下面例子來看看具體寫法。

<form action="/todata" method="POST">
        <table>
            <tr>
                <td>姓名</td>
                <td> <input type="text" name="user" id=""></td>
            </tr>
            <tr>
                <td>密碼</td>
                <td> <input type="text" name="password" id=""></td>
            </tr>
            <tr>
                <button type="submit">提交</button>
            </tr>
        </table>
</form>

由於表單提交是post請求,在後端nodejs代碼中需要對post請求數據接收需要做解析響應頭的處理app.use(bodyParser.urlencoded({ extended: false })),然後用req.body來表示前端傳遞過來的數據。具體後端代碼如下。

const express = require("express");
const app = express();
app.use(express.static("./"))
var bodyParser = require('body-parser')
//  解析 application/x-www-form-urlencoded響應頭
app.use(bodyParser.urlencoded({ extended: false }))
app.post("/todata",(req,res)=>{
    console.log(req.body);
    res.send("提交成功")
})
app.listen("80",()=>{
    console.log("成功");
})

通過終端運行node代碼,來看看結果

ajax請求傳遞

在向後端發送請求時,常用到get、post請求,同樣,表單的數據可以通過ajax以post請求發送數據給後端。以上面例子為基礎,該方法的前端代碼如下。

	 $("#inp3").on("click",function(){
        let user = $("#inp1").val();
        let password = $("#inp2").val();
        $.ajax({
        url:"todata",
        type:"post",
        data:{
            user,
            password
        },
        success:(data)=>{
            alert(data)
        }
         })
    })

這裡,我們將兩個input的值獲取到,然後綁定提交按鈕的提交按鈕進行ajax請求發送,發送給後端的數據存儲在data屬性中。後端同樣通過req.body獲取到。這裡需要特別註意的是form表單不需要寫action值,表單中button按鈕需要阻止默認行為(不然會點擊直接發送請求導致ajax請求會失敗),或是用input標簽type為button類型。

表單序列化

這種發送是表單提交的常用方法,它也是通過ajax發送請求,也可以將name屬性作為發送後端的屬性名直接發送。可以說是以上兩種方法的結合。

		$("#inp3").on("click",function(){
        $.ajax({
        url:"todata",
        type:"post",
        data:$("form").serialize(),
        success:(data)=>{
            alert(data)
        }
         })
    })

隻需要通過$(“form”).serialize()這個方法,就能獲取含name屬性值。

總結

到此這篇關於nodejs獲取表單數據的文章就介紹到這瞭,更多相關nodejs獲取表單數據內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!

推薦閱讀: