Node接受get和post传递过来的参数

get方式 代码如下(get详情看注释)

/*
前端传参
get传参:拼接在url上面
http://127.0.0.1 :4399/ joke ?id-8&username=admin
post传参:不是拼接在url上面
请求体中传递
*/
//写一个服务器(后端接口)
//1.导入模块
const http = require("http");
var url = require('url');
const { utimes } = require("fs");
//2.创建服务器
const server = http.createServer((req, res) => {
    var urls = req.url;
    console.log(req.url);    //req是请求的对象,req. ur1能拿到请求的url中?以及?后面的内容
    // ' /?id-&username=weige' ' /?id=8&username=%E6
    //我们可以通过req.url拿到前端传递过来的参数
    //但是要做字符串的处理.
    //第一个参数为要处理的数据,第二个参数,true启用对象的形式返回
    //这个返回的对象里面有一个query属性,他也是一个对象,这个属性里面就有get传递过来的参数

    var urlobj = url.parse(req.url, true)
    console.log(urlobj);

    //那就可以在这里根据这个接收到的id,去数据库中获取这个id的英雄的所有详细信息
    //返回给调用这.
    //如果在这里拿到了id对应的英雄的详细信息了, 就可以返回,
    res.end(JSON.stringify(url0bj.query));//只能返回字符串



})
//4.开启服务器
server.listen(4399, () => {
    console.log('服务器开启了...');
});


Post方式 代码如下(注释写的详细)

/**
前端传参
get传参:拼接在url上面
http://127.0.0.1:4399/ joke?id-8&username-admin
post传参:不是拼接在url上面
请求体中传递
*/
//1.导入模块
const http = require("http");
var url = require('url');
var querystring = require('querystring');//这个模块是请求丶数据转换为字符串形式
const server = http.createServer((req, res) => {
   //req是请求对象
//因为这里是post的方式传递过来的参数,不是在ur1中的,所以用req.url是拿不到的
//console. log(req.ur1); 
// 他也是一小块- -小块的接收.
// 1.首先你得要一个容器
let postData='';
// 2.给req对象一个data事件(这个事件 会执行很多次)
//事件处理程序,参数是当前这次传递过来的一下快内容,
req.on('data',(chunk,)=>{//意思为绑定一个data事件,这个为事件体
//   将数据累加到容器里,// 这个事件里面就把这些小块的数据拼接起来
   postData+=chunk;


})
// 当前面的参数接受完成那就是end事件


// 3.给req对象一个end事件(这个事件只会执行一 -次)
req.on('end',()=>{
    console.log(postData)//username=admin&&psssword=1234
    //4利用解析这个传递过来的参数数据,形成一个对象
     let postObj=querystring.parse(postData)
     console.log(postObj);//{username:'admin',password:'"1234"}
})
// 表示数据传递完了
// 4.处理传递过来的数据
// queryString.parse0:




})
//2.创建服务器
//3.开启服务器
server.listen(4399, () => {
    console.log('服务器开启了...');
});


HTTP协议-数据传输方式get post put push opt ions
get和post传输方式的区别
get是地址栏传输数据
post是表单传输数据
get传输数据量小post 传输数据量大
get不安全post是相对安全
都不准确
没有经过加密
get传输文本数据post还可以传输二进制数据
浏览器这个工具仅仅是HTTP 协议的一个具体实现

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值