node通过get和post获取数据

1.get

我是用的url进行解析

  1. req.method可以获取请求方式
  2. req.url 获取请求地址
  3. req.headers获取请求报文信息
    例如 url为 localhost:/index?name=zs&age=4
  let { query, pathname } = url.parse(req.url, true);
  console.log(pathname); ///index
  console.log(query.name);//zs
  console.log(query.age);//4

完整代码如下

// 用于创建网站服务器的模块
const http = require("http");
// 用于处理url地址
const url = require("url");
// app对象就是网站服务器对象
const app = http.createServer();
// 当客户端有请求来的时候
app.on("request", (req, res) => {
  // 获取请求方式  有get  和post   在搜索栏时get
  // req.method
  // console.log(req.method);

  // 获取请求地址
  // req.url
  // console.log(req.url);

  // 获取请求报文信息
  // req.headers
  // console.log(req.headers['accept']);

  //'content-type': 'text/html;charset=utf8'  后面的意思是用html解析方式解析
  res.writeHead(200, {
    "content-type": "text/html;charset=utf8",
  });

  console.log(req.url);
  // 1) 要解析的url地址
  // 2) 将查询参数解析成对象形式
  let { query, pathname } = url.parse(req.url, true);
  console.log(pathname);
  console.log(query.name);
  console.log(query.age);

  if (pathname == "/index" || pathname == "/") {
    res.end("<h2>欢迎来到首页</h2>");
  } else if (pathname == "/list") {
    res.end("<h2>welcome to listpage</h2>");
  } else {
    res.end("<h2>not found</h2>");
  }

  if (req.method == "POST") {
    res.end("post");
  } else if (req.method == "GET") {
    res.end("get");
  }

  // res.end('<h2>hello user</h2>');
});
// 监听端口
app.listen(3000);
console.log("网站服务器启动成功");

2,post

首先在html文件中的表单中选择你提交的方式和地址

<!--
    		method: 指定当前表单提交的方式
    		action: 指定当前表单提交的地址
    	-->
    <form method="post" action="http://localhost:3000">
      <input type="text" name="username" />
      <input type="password" name="password" />
      <input type="submit" />
    </form>

post请求是连续短暂的 所以需要监听传输完毕事件

 // 监听参数传输完毕事件
  req.on("end", () => {
    console.log(querystring.parse(postData));
  });

完整代码如下

 //用于创建网站服务器的模块
const http = require("http");
// app对象就是网站服务器对象
const app = http.createServer();
// 添加'querystring   用来处理字符串
const querystring = require("querystring");
//添加事件  post的一些信息在报文里

//因为post要用到两个函数一个是data传输  一个是end 传输结束
app.on("request", (req, res) => {
  let postData = "";
  // 监听参数传输事件   以为传输是多次的
  req.on("data", (chunk) => (postData += chunk));
  // 监听参数传输完毕事件
  req.on("end", () => {
    console.log(querystring.parse(postData));
  });
  res.end("hi");
});
// 监听端口
app.listen(3000);
console.log("网站服务器启动成功");
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值