nodejs获取get/post请求参数

一、原生node中怎么获取get/post请求参数

处理get请求参数,使用node自带的核心模块----url模块

url.parse();方法将一个完整的URL地址,分为很多部分,常用的有:host、port、pathname、path、query。
第一个参数是地址,
第二个参数默认是false,设置为ture后,将字符串格式转换为对象格式。字符串(“a=1&b=2”)转换为了对象格式({a: 1,b: 2})。

var url = require("url");
//req.url='/users?a=1&b=2'
var urlObj = url.parse("/users?a=1&b=2" ,true);
console.log(urlObj );//{a:1,b:2}

处理post请求参数
要想获得post参数对象,需要用到第三方包querystring

req.body = querystring.parse(str); // querystring.parse是将字符串转成对象{a:1,b:2}

二、express框架中获取请求的参数方法

获取get请求的参数值(req.query)
由nodejs默认提供,无需载入中间件,
此方法多适用于GET请求,解析GET请求中的参数
包含在路由中每个查询字符串参数属性的对象,如果没有则为{}

//访问127.0.0.1/user?name=zd&age=18
console.log(req.query);//{name:zs,age:18}

获取url路径(req.params)

nodejs默认提供,无需载入其他中间件

req.params包含路由参数(在URL的路径部分),而req.query包含URL的查询参数(在URL的?后的参数)。

app.get("/user/:id", function (req, res) {
	//访问127.0.0.1/user/3
  console.log(req.params);//{id:3}
});

获取post请求的参数值(req.body)
req.body不是nodejs默认提供的,需要载入中间件body-parser中间件才可以使用req.body。
express已集成了body-parser,可以直接引入,如果没有请自行下载引入

demo:

const express = require("express");
const app = express();
//const crypto = require("crypto");//加解密
//const hash = crypto.createHash("md5");
const bodyParser = require("body-parser");//body参数解析

app.use(bodyParser.urlencoded({ extended: false })); //parse application/x-www-form-urlencoded
app.use(bodyParser.json()); //parse application/json
// app.use(bodyParser()); //此方法废弃,由上面两个替代

app.get("/", function (req, res) {
  console.log(req.query);
  res.send("helloworld");
});

app.get("/user/:id", function (req, res) {
  console.log(req.params);//{id:xx}
  res.send("helloworld");
});

app.post("/user", function (req, res) {
  console.log(req.body);
  // 处理逻辑。。。查询sql
  res.send({ name: "yang", age: 18 });
});

app.listen(80, function () {
  console.log("express is running");
});

一般情况下,以下几个重要的模块是需要与 express 框架一起安装的:

  • body-parser - node.js 中间件,用于处理 JSON, Raw, Text 和 URL 编码的数据。

  • cookie-parser - 这就是一个解析Cookie的工具。通过req.cookies可以取到传过来的cookie,并把它们转成对象。

  • multer - node.js 中间件,用于处理 enctype=“multipart/form-data”(设置表单的MIME编码)的表单数据。

  • 5
    点赞
  • 37
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
在 Node.js 中,可以使用内置的 `http` 模块来创建一个 HTTP 服务器,然后使用 `request` 事件来监听客户端的请求。当客户端发送 POST 请求时,请求数据通常会作为请求的主体体传递。因此,你需要使用 `data` 事件来监听请求主体。 以下是一个简单的示例代码,演示如何在 Node.js 中接收 POST 请求参数: ```javascript const http = require('http'); const server = http.createServer((req, res) => { if (req.method === 'POST') { let body = ''; req.on('data', chunk => { body += chunk.toString(); // 将数据流转换为字符串 }); req.on('end', () => { console.log(`Received body: ${body}`); res.end('OK'); }); } else { res.end('Hello World!'); } }); server.listen(8080, () => { console.log('Server listening on port 8080'); }); ``` 在上面的代码中,我们首先创建了一个 HTTP 服务器,并监听 `request` 事件。当客户端发送 POST 请求时,我们检查请求方法是否为 POST,并使用 `req.on('data', callback)` 方法来监听请求主体。每次接收到数据时,回调函数会被调用,我们将数据流转换为字符串,并拼接到 `body` 变量中。当请求主体传输完成时,`req.on('end', callback)` 方法会被调用,我们在回调函数中输出接收到的请求主体,并通过 `res.end` 方法返回响应。 当客户端发送 GET 请求时,我们直接返回一个 `Hello World!` 字符串作为响应。 注意,上面的代码仅仅演示了如何接收 POST 请求参数,并没有进行任何安全性检查和数据验证。在实际开发中,你需要对接收到的数据进行严格的验证和过滤,以防止安全漏洞和错误数据的出现。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

C+ 安口木

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值