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",
js调用方法的三种写法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获取表单数据内容请搜索以前的⽂章或继续浏览下⾯的相关⽂章希望⼤家以后多多⽀持!
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论