nodejs獲取表單數(shù)據(jù)的三種方法實(shí)例
前言
nodejs作為服務(wù)端語(yǔ)言,在開發(fā)中注冊(cè)登錄等需通過(guò)form表單向后端發(fā)送數(shù)據(jù)進(jìn)行判斷,那作為服務(wù)端語(yǔ)言的nodejs通過(guò)哪些方法可以接收調(diào)用form表單的post請(qǐng)求值呢。
常見的會(huì)用到以下三種,讓我們對(duì)著例子看看具體用法。
后端我們使用express插件,需要對(duì)express有所了解的才便于閱讀哦~
1、首先npm初始化,下載express包,導(dǎo)入模塊后創(chuàng)建服務(wù)對(duì)象
//導(dǎo)入express模塊
const express = require("express");
// 創(chuàng)建服務(wù)器對(duì)象
const app = express();
form表單傳遞
這種通過(guò)from表單的特性,可以點(diǎn)擊表單中button的type為submit的按鈕,會(huì)提交表單數(shù)據(jù)。形式是以一種對(duì)象方式,屬性名為input標(biāo)簽中name值,屬性值為input標(biāo)簽value值,下面例子來(lái)看看具體寫法。
<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請(qǐng)求,在后端nodejs代碼中需要對(duì)post請(qǐng)求數(shù)據(jù)接收需要做解析響應(yīng)頭的處理app.use(bodyParser.urlencoded({ extended: false })),然后用req.body來(lái)表示前端傳遞過(guò)來(lái)的數(shù)據(jù)。具體后端代碼如下。
const express = require("express");
const app = express();
app.use(express.static("./"))
var bodyParser = require('body-parser')
// 解析 application/x-www-form-urlencoded響應(yīng)頭
app.use(bodyParser.urlencoded({ extended: false }))
app.post("/todata",(req,res)=>{
console.log(req.body);
res.send("提交成功")
})
app.listen("80",()=>{
console.log("成功");
})
通過(guò)終端運(yùn)行node代碼,來(lái)看看結(jié)果

ajax請(qǐng)求傳遞
在向后端發(fā)送請(qǐng)求時(shí),常用到get、post請(qǐng)求,同樣,表單的數(shù)據(jù)可以通過(guò)ajax以post請(qǐng)求發(fā)送數(shù)據(jù)給后端。以上面例子為基礎(chǔ),該方法的前端代碼如下。
$("#inp3").on("click",function(){
let user = $("#inp1").val();
let password = $("#inp2").val();
$.ajax({
url:"todata",
type:"post",
data:{
user,
password
},
success:(data)=>{
alert(data)
}
})
})
這里,我們將兩個(gè)input的值獲取到,然后綁定提交按鈕的提交按鈕進(jìn)行ajax請(qǐng)求發(fā)送,發(fā)送給后端的數(shù)據(jù)存儲(chǔ)在data屬性中。后端同樣通過(guò)req.body獲取到。這里需要特別注意的是form表單不需要寫action值,表單中button按鈕需要阻止默認(rèn)行為(不然會(huì)點(diǎn)擊直接發(fā)送請(qǐng)求導(dǎo)致ajax請(qǐng)求會(huì)失?。?,或是用input標(biāo)簽type為button類型。

表單序列化
這種發(fā)送是表單提交的常用方法,它也是通過(guò)ajax發(fā)送請(qǐng)求,也可以將name屬性作為發(fā)送后端的屬性名直接發(fā)送??梢哉f(shuō)是以上兩種方法的結(jié)合。
$("#inp3").on("click",function(){
$.ajax({
url:"todata",
type:"post",
data:$("form").serialize(),
success:(data)=>{
alert(data)
}
})
})
只需要通過(guò)$(“form”).serialize()這個(gè)方法,就能獲取含name屬性值。

總結(jié)
到此這篇關(guān)于nodejs獲取表單數(shù)據(jù)的文章就介紹到這了,更多相關(guān)nodejs獲取表單數(shù)據(jù)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Node.js API詳解之 vm模塊用法實(shí)例分析
這篇文章主要介紹了Node.js API詳解之 vm模塊用法,結(jié)合實(shí)例形式分析了Node.js API中vm模塊基本功能、函數(shù)、使用方法及相關(guān)操作注意事項(xiàng),需要的朋友可以參考下2020-05-05
初步使用Node連接Mysql數(shù)據(jù)庫(kù)
這篇文章主要介紹了Node連接Mysql數(shù)據(jù)庫(kù)的詳細(xì)步驟,思路清晰,幫助大家快速使用Node連接Mysql數(shù)據(jù)庫(kù),感興趣的小伙伴們可以參考一下2016-03-03
Nodejs 發(fā)送Post請(qǐng)求功能(發(fā)短信驗(yàn)證碼例子)
這篇文章主要介紹了Nodejs 發(fā)送Post請(qǐng)求功能(發(fā)短信驗(yàn)證碼例子),需要的朋友可以參考下2017-02-02
如何利用nodejs自動(dòng)定時(shí)發(fā)送郵件提醒(超實(shí)用)
這篇文章主要給大家介紹了關(guān)于如何利用nodejs實(shí)現(xiàn)自動(dòng)定時(shí)發(fā)送郵件提醒的相關(guān)資料,這個(gè)功能非常實(shí)用,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-12-12
解決nodejs的npm命令無(wú)反應(yīng)的問(wèn)題
今天小編就為大家分享一篇解決nodejs的npm命令無(wú)反應(yīng)的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-05-05
Node.js連接MongoDB數(shù)據(jù)庫(kù)產(chǎn)生的問(wèn)題
Node.js是使用JavaScript 編寫的可以運(yùn)行在服務(wù)端的JS語(yǔ)言。node.js和mongodb碰撞會(huì)產(chǎn)生一系列問(wèn)題,下面通過(guò)本文給大家分享Node.js連接MongoDB數(shù)據(jù)庫(kù),需要的的朋友參考下2017-02-02
Node.js中fs模塊實(shí)現(xiàn)配置文件的讀寫操作
在Node.js中, fs模塊提供了對(duì)文件系統(tǒng)的訪問(wèn)功能,我們可以利用它來(lái)實(shí)現(xiàn)配置文件的讀取和寫入操作,這篇文章主要介紹了Node.js中fs模塊實(shí)現(xiàn)配置文件的讀寫,需要的朋友可以參考下2024-04-04
Node.js實(shí)現(xiàn)http請(qǐng)求服務(wù)與Mysql數(shù)據(jù)庫(kù)操作方法詳解
這篇文章主要介紹了Node.js實(shí)現(xiàn)http請(qǐng)求服務(wù)與Mysql數(shù)據(jù)庫(kù)操作方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)吧2022-10-10

