Node学习篇:获取get和post请求的参数(未优化)

一些说明

需要用到的包

const http = require('http');
const mysql = require('mysql');
const querystring = require('querystring');
const url = require("url");

get请求从url中获取;
post请求从请求体中获取;

获取get请求的参数

example:请求地址
http://localhost:9000/getalluser?name=lin&v_id=3&time=2020-10-09

  let initurl = request.url;
  console.log(initurl)
 ///getalluser?name=lin&v_id=3&time=2020-10-09
let urlObj = url.parse(initurl);
console.log(urlObj)

打印的内容如下:
url对象

Url {
  protocol: null,
  slashes: null,
  auth: null,
  host: null,
  port: null,
  hostname: null,
  hash: null,
  search: '?name=lin&v_id=3&time=2020-10-09',
  query: 'name=lin&v_id=3&time=2020-10-09',
  pathname: '/getalluser',
  path: '/getalluser?name=lin&v_id=3&time=2020-10-09',
  href: '/getalluser?name=lin&v_id=3&time=2020-10-09' 
}
//将请求的参数转化为对象
let queryObj = querystring.parse(urlObj.query)
console.log(queryObj )

在这里插入图片描述

获取post请求的参数

example
请求的地址:http://localhost:9000/getnoteevent
在这里插入图片描述

server.on('request', (request, response) => {
  let body="";
  // 获取post请求的参数
  if(request.method == 'POST'){
    request.on('data', (chunk) => {
      body += chunk;
    });
  }
}

代码


// 创建一个web服务器
const server = http.createServer((req, res) => {
  res.statusCode = 200;
  // res.setHeader('Content-Type', "text/html;charset=utf-8");
  res.setHeader('Content-Type','text/plain');
  res.setHeader("Access-Control-Allow-Origin", "*");
  res.setHeader("Access-Control-Allow-Headers", "*");
  res.setHeader("Access-Control-Allow-Methods", "PUT,POST,GET,DELETE,OPTIONS");
})

server.on('request', (request, response) => {
  // 请求的路径:/getalluser?name=lin&v_id=3&time=2020-10-09
  let initurl = request.url;
  let body="";
  // 获取post请求的参数
  if(request.method == 'POST'){
    request.on('data', (chunk) => {
      body += chunk;
    });
  }
  let urlObj = url.parse(initurl);
  let queryObj = querystring.parse(urlObj.query)
  console.log('priiii',queryObj);


  if(urlObj.pathname == '/favicon.ico' || urlObj.pathname == ''){
    return;
  }

  if (urlObj.pathname === '/getnoteevent') {
    console.log('post请求参数',JSON.parse(chunk));

    // 查询数据
    connection.query('select * from t_note_event',  (err, row) => {
      if (err) {
        console.log(err);
      }else{
        let data = JSON.stringify(row);
        response.end(data);
      }
    })
  }
  if(urlObj.pathname == '/getalluser'){
    console.log('get请求体参数',queryObj);
    connection.query('select * from t_note_user', (err, row) => {
      if (err) {
        console.log(err);
      }else{
        let data = JSON.stringify(row);
        response.end(data);
      }
    })
  }
})

// 监听9000端口
server.listen(9000, () => {
  console.log('服务器启动了。。。')
})
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值