node get/post请求参数处理 url/queryString模块

url模块方式

使用url.parse 方法将路径解析为一个方便操作的随心,第二个参数true表示直接将查询字符串转成对象

let urlObj = url.parse(req.url,true)
console.log("urlObj:",urlObj)

在这里插入图片描述

示例

index.html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>参数测试</title>
</head>
<body>
    
    <form action="http://127.0.0.1:3000/login" method="post">
        <input type="text" name="name">
        <input type="text" name="age">
        <input type="submit" >
    </form>
</body>
</html>

app.js

// 参数处理

const http = require("http")
const url = require("url") // 用于处理url地址  
const queryString = require("querystring") //处理请求参数模块
const fs = require("fs")
const app = http.createServer()


app.on("request",(req, res)=>{

    // 使用url.parse 方法将路径解析为一个方便操作的对象,第二个参数true表示直接将查询字符串转成对象
    // query:请求参数, pathname:请求路径
    let {query, pathname} = url.parse(req.url,true)
    res.writeHead(200,{'Content-type':'text/html;charset=utf8'})

    // 首页处理
    if(pathname == "/" || pathname == "/index"){
        fs.readFile("./index.html",(err, data)=>{
            if(!err){
                res.end(data)
            }
        })
        return 
    }
    console.log("method:",req.method,pathname)
    if(req.method == "GET"){
        // 参数被放置在请求路径中进行传输
        // query get请求参数 query.xxx
        if(pathname == "/index"){
            // index 路径处理
            // ....
        }
        
    }else if(req.method == "POST"){

        // 参数被放置在请求体中进行传输
        // post请求参数是通过事件接收的
        // data 当有请求参数传递的时候触发
        // end 请求参数传递完成的时候触发
        
        let postparams = ''
        req.on("data",(data)=>{ // 如果参数内容过大 可能会触发多次 数据分多次上传
            // console.log("POSTdata:",data.toString()) //post请求参数
            // if(pathname == '/login'){
            //     // login 路径处理
            //     // ....
            // }
            console.log('data',data)
            postparams += data;
        })

        req.on("end",()=>{
            let paiams = queryString.parse(postparams)
            console.log('end',postparams,paiams.name)
        })
    }

    res.end("响应")
   
})

app.listen(3000,()=>{
    console.log(" 服务器启动成功: http://127.0.0.1:3000")
})

启动测试

node app.js
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值