NodeJS 中获取GET和POST的请求参数
node 中获取GET和POST的请求参数GET请求GET请求的参数都是在url地址中传递的依赖的核心模块const url = reqiure("url")方法url.parse(request,url,true) 文档说明请求的url地址localhost:9527/userinfo?id=1该方法会返回一个对象query保存着传递的GET参数{ id: '1' },pathna...
·
node 中获取GET和POST的请求参数
原生方法
GET
请求
GET
请求的参数都是在url
地址中传递的- 依赖的核心模块
const url = reqiure("url")
- 方法
url.parse(request,url,true)
文档说明 - 请求的
url
地址localhost:9527/userinfo?id=1
- 该方法会返回一个对象
query
保存着传递的GET
参数{ id: '1' }
,pathname
是请求的路径类似于/userinfo
const http = require("http") const url = require("url") const serve = http.createServer() serve.on("request",(request,response) => { const {query,pathname} = url.parse(request.url,true) if(pathname === "/") { response.end("123") }else if(pathname === "/userinfo") { console.log(query.id) // 1 } }) serve.listen(9527,() => { console.log("localhost:9527") })
POST
请求
POST
请求和GET
请求相比数据量更大,并且传递的数据集中在body
中- 在接收数据的时候,可能存在数据量比较大的时候,这时服务器不会一次性接收完毕,会分段接收数据
- 因此,在接收
POST
数据的时候需要监听请求到的数据 - 使用的方法
response.on("data",(data) => {})
,返回的数据是每次请求传递的数据,最后得到的数据需要进行拼接 - 还需要在数据接收完成之后关闭监听
response.on("end",() => {})
method === "GET"
是用来判断请求的类型是GET
还是POST
请求- 一个新的核心模块
const querystring = require("querystring")
是用来将浏览器传递的数据整理成为一个对象,使用的方法是const data = querystring.parse(getData)
文档说明const http = require("http") const url = require("url") const serve = http.createServer() const querystring = require("querystring") serve.on("request",(request,response) => { const {query,pathname} = url.parse(request.url,true) const { method } = request if(method === "GET") { if(pathname === "/") { response.end("123") } } else if(method === "POST") { if(pathname === "/updata") { let getData = "" resquest.on("data", (data) => { getData += data }) resquest.on("end",() => { const data = qureystring .parse(getData) console.log(data) // { age: '8', height: '185' } }) } } }) serve.listen(9527,() => { console.log("localhost:9527") })
使用express
框架
GET
请求 可以直接在请求request
中获取数据
请求地址可以是localhost:9527/user?id=2
const express = require("express")
const app = express()
const router = express.Router()
router.get("/user",(req,res) => {
const { query } = req
console.log(query) // {id:2} 这里就可以获取到传递的get参数
res.send("hello world")
})
app.listen(9527,() => console.log("localhost:9527"))
请求地址也可以是localhost:9527/user/2
,匹配地址就需要改变为router.get("/user/:id")
,参数接收需要改变为params
const express = require("express")
const app = express()
const router = express.Router()
router.get("/user/:id",(req,res) => {
const { params } = req
console.log(params) // {id:2} 这里就可以获取到传递的get参数
res.send("hello world")
})
app.listen(9527,() => console.log("localhost:9527"))
POST
请求获取的方式和原生的一样 ,都需要在body
中获取,但是POST
请求也可以使用第三方摸块formiable
获取请求数据 参考文章
开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!
更多推荐
已为社区贡献1条内容
所有评论(0)