nodejs(get请求方式)

1.实例:
HTML页面:


<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
 <form method="get" action="http://localhost:3000/login" name="form1">
     用户名:<input type="text" id="user" name="user"><br/>
     密码:<input type="password" id="pswd" name="pswd"><br/>
     <input type="submit" value="登录">
 </form>
</body>
</html>

服务器端代码:
server.js


const http=require("http");
http.createServer((req,res)=>{
    if(req.url.indexOf('?')!==-1){
        let arr=req.url.split('?');
        let infoGet={};
        //arr[0]-----/login
        //arr[1]-----user=tom&pswd=123
        let arr2=arr[1].split('&');
        //arr2=>['user=tom','pswd=123'];
        for(let i=0;i<arr2.length;i++){
            let arr3= arr2[i].split('=');
            infoGet[arr3[0]]=arr3[1];
        }
        res.end(JSON.stringify(infoGet));
    }else{
        res.end("404");
    }


}).listen(3000,function(){
    console.log("The server is running!")
});

执行html代码:
在这里插入图片描述
输入用户名和密码点击登录:

在这里插入图片描述

在这里插入图片描述
2.补充:上述代码中对于url的处理,比较繁琐,我们可以利用第三方模块
(1)querystring:
使用querystring优化的代码如下:

const http=require("http");
const querystring=require("querystring");
http.createServer((req,res)=>{
    if(req.url.indexOf('?')!==-1){
        let arr=req.url.split('?');
        let result=querystring.parse(arr[1]);
        console.log(result);
        res.end('ok');

    }else{
        res.end("404");
    }


}).listen(3000,function(){
    console.log("The server is running!")
});

(2)url(推荐使用)

使用URL的代码优化如下:

const http=require("http");
const urlBoss=require("url");
http.createServer((req,res)=>{
   let result=urlBoss.parse(req.url,true);
   //url模块的第二个参数设置为true表示对各个字段进行切片
   console.log(result);
   res.setHeader('Content-Type','text/plain;charset=utf-8');
   res.end(result.query.user+'密码:'+result.query.pswd);

}).listen(3000,function(){
    console.log("The server is running!")
});

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值