NodeJS中,Express获取request所传递的数据方式

在nodejs的Express中,可以通过 req.body、req.query和req.params 三种形式来获取请求数据。

第一种情况:http://localhost:3000/testparams/lixing,服务端代码这样写:

router.get('/testparams/:anything', function (req, res) {
res.send('anything is : ' + req.params.anything);
})//这里的anything指的是你可以任意命名,以便使用req.params.XX获取参数


在浏览器输入请求路径后页面返回:anything is : lixing
 

第二种情况:http://localhost:3000/?id=1,用req.query.id,我们会得到 1,如果有两个或以上参数,用 & 连接,如:/?id=1&name=test,

获取参数则是:req.query.id --> 1 , req.query.name - -> test .


今天遇到一个情况,就是前端用jQuery get方法带参数请求,我这边获取的时候由于用的同一段获取的代码,req.query,


取到的req.query 的值 :GET /tower?projectID=1&projectDeviceID=cfcf3d22-2d49-43aa-a607-9919c87700fa&ticket=0


第三种情况:用Post方法向node服务器发送数据 id = 1,post('/login', {name: lixing}),node端获取参数则应该是:req.body.name.



//方式1
xmlHttp.open("POST","login?userName="+userName);
console.log(req.query.userName);
app.post('/login',mutipartMiddeware,function (req,res) {
    console.log(req.query.userName);
    console.log("=========\n");
   
    var jsonObject={};
    jsonObject.msg="用户信息提交成功!"
    //给浏览器返回一个成功提示。
    res.send(jsonObject);
});

//方式2
xmlHttp.open("POST","/login/"+userName);
app.post('/login/:userName',mutipartMiddeware,function (req,res) {
    //1.方式1
    // console.log(req.query.userName);
    //方式2
    console.log(req.params.userName);
    console.log("=========\n");
   
    var jsonObject={};
    jsonObject.msg="用户信息提交成功!"
    //给浏览器返回一个成功提示。
    res.send(jsonObject);
});


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值