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是请求的路径类似于/userinfoconst 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获取请求数据 参考文章
更多推荐



所有评论(0)