nodejs学习笔记二(get请求、post请求、 querystring模块,url模块)
<form action="http://localhost:8080/" method="get">
用户:<input type="text" name="user" value="" /><br>
密码:<imput type="password" name="pass" value="" /><br>
<input type="submit" value="提交">
</form>
const http = require('http');
http.createServer( (req,res) => {
console.log(req.url); // /aaa?user=jason&pass=123456
let GET = {};
let url = req.url;
// 判断请求的url中是否含有查询参数
if(url.indexOf('?') != -) {
let arr = url.split('?');
// arr[0] = 地址 '/aaa' arr[1] = 数据 'user=jason&pass=123456'
let arr2 = arr[].split('&');
for(let i = ; i < arr2.length; i++) {
let arr3 = arr2[i].split('=');
// arr3[0] ==>姓名 arr3[1] ==> 密码
GET[arr3[]] = arr3[];
}
}
res.write('有请求了');
res.end();
}).listen();
const http = require('http');
http.createServer( (req, res) => {
console.log(req.url);
let GET = {};
let url = req.url;
if(url.indexOf('?') != -) {
let arr = url.split('?');
url = arr[];
let arr2 = arr[].split('&');
for(let i = ; i < arr2.length; i++) {
let arr3 = arr2[i].split('=');
GET[arr3[]] = arr3[];
}
}
console.log(GET, url)
res.write('');
res.end();
}).listen();
const querystring = require('querystring');
let GET = querystring.parse('name=jason&age=18');
console.log(GET);
// { name: 'jason', password: '123456' } '/'
// {} '/favicon.ico'
url模块:
const urlLib = require('url');
let urlObj = urlLib.parse('http://www.baidu.com:8901/index/static?name=jason&age=18', true);
console.log(urlObj);
当第二个参数为true时:
Url {
protocol: 'http:',
slashes: true,
auth: null,
host: 'www.baidu.com:8901',
port: '',
hostname: 'www.baidu.com',
hash: null,
search: '?name=jason&age=18',
query: { name: 'jason', age: '' },
pathname: '/index/static',
path: '/index/static?name=jason&age=18',
href: 'http://www.baidu.com:8901/index/static?name=jason&age=18'
}
为false时:
Url {
protocol: 'http:',
slashes: true,
auth: null,
host: 'www.baidu.com:8901',
port: '',
hostname: 'www.baidu.com',
hash: null,
search: '?name=jason&age=18',
query: 'name=jason&age=18',
pathname: '/index/static',
path: '/index/static?name=jason&age=18',
href: 'http://www.baidu.com:8901/index/static?
name=jason&age='
}
const http = require('http');
const urlLib = require('url');
http.createServer( (req, res) => {
let urlObj = urlLib.parse(req.url, true);
let GET = urlObj.query;
let urlName = urlObj.pathname;
console.log(GET, urlName);
res.write('完成');
res.end();
}).listen();
<form action="http://localhost:8999/aaa" method="post">
账号:<input type="text" name="name" value=""><br>
密码:<input type="password" name="password" value=""><br>
<input type="submit" value="提交">
</form>
const http = require('http');
const querystring = require('querystring');
http.createServer( (req, res) => {
// post -- req
let str = '';
let i = ;
req.on('data', (data) => {
console.log(`第${i++}次接收到数据`);
str += data;
});
req.on('end', () => {
let POST = querystring.parse(str);
console.log(str);
});
}).listen();
const http = require('http');
const fs = require('fs');
const querystring = require('querystring');
const urlLib = require('url');
let server = http.createServer( (req, res) => {
// GET
let url = urlLib.parse(req.url).pathname;
const GET = urlLib.parse(req.url, true).query;
// POST
let str = '';
let POST;
req.on('data', (data) => {
str += data;
});
req.on('end', () => {
POST = querystring.parse(str);
console.log(url, GET, POST);
});
console.log(url, GET, POST);
// 文件读取
let file_name = './www' + url;
fs.readFile(file_name, (err, data) => {
if(err) {
res.write('');
}else{
res.write('读取成功');
}
res.end();
})
});
server.listen();
nodejs学习笔记二(get请求、post请求、 querystring模块,url模块)的更多相关文章
- nodejs学习笔记二——链接mongodb
a.安装mongoose库用来链接mongodb数据库 安装mongodb数据库参考mongodb安装 前言(怨言) 本来是想安装mongodb库来链接mongodb的,命令行到nodejs工程目录: ...
- nodejs学习笔记二:解析express框架项目文件
上一章介绍了如何去创建一个express框架的工程项目,这章介绍一下express框架下的文件和用法解析,上一张我们创建的工程项目结构图如下: models是不属于原工程项目结构,为了实现数据模型后添 ...
- nodejs学习笔记<二>简单的node服务器
在环境搭建好后,就可以开始动手架设(node驱动)一个简单的web服务器. 首先,nodejs还是用js编写.先来看一段node官网上的实例代码. var http = require('http') ...
- nodejs学习笔记<二> 使用node创建基础服务器
创建服务器的 server.js 内容. var http = require("http"); // 引用http模块 http.createServer(function(re ...
- NodeJS学习笔记二
类声明和类表达式 ES6 中的类实际上就是个函数,而且正如函数的定义方式有函数声明和函数表达式两种一样,类的定义方式也有两种,分别是:类声明.类表达式. 类声明 类声明是定义类的一种方式,就像下面这样 ...
- openresty 学习笔记二:获取请求数据
openresty 学习笔记二:获取请求数据 openresty 获取POST或者GET的请求参数.这个是要用openresty 做接口必须要做的事情.这里分几种类型:GET,POST(urlenco ...
- Nodejs学习笔记(二)——Eclipse中运行调试Nodejs
前篇<Nodejs学习笔记(一)——初识Nodejs>主要介绍了在搭建node环境过程中遇到的小问题以及搭建Eclipse开发Node环境的前提步骤.本篇主要介绍如何在Eclipse中运行 ...
- Nodejs学习笔记(六)--- Node.js + Express 构建网站预备知识
目录 前言 新建express项目并自定义路由规则 如何提取页面中的公共部分? 如何提交表单并接收参数? GET 方式 POST 方式 如何字符串加密? 如何使用session? 如何使用cookie ...
- AJax 学习笔记二(onreadystatechange的作用)
AJax 学习笔记二(onreadystatechange的作用) 当发送一个请求后,客户端无法确定什么时候会完成这个请求,所以需要用事件机制来捕获请求的状态XMLHttpRequest对象提供了on ...
随机推荐
- RoadFlow ASP.NET Core工作流引擎IIS部署
RoadFlow最新版本采用ASP.NET CORE2.1开发,部署步骤和.NET CORE部署一样,具体可参数ASP.NET CORE的部署方式. 1. 获取代码 首先从RoadFlow官网下载最新 ...
- Android 获取 content layout
if (findViewById(android.R.id.content) instanceof ViewGroup) { ViewGroup mainView = ((ViewGroup)find ...
- Delphi XE7编译安卓程序出错了
昨天编译一个先前可以正常运行的程序,忽然就不能编译了,总是提示这个错误,经过一番排查,终于搞定了,原因:删除了安卓lib引用的JAR和单元文件.如果你也出现这个问题,打开工程全部目录,看一下是否有打小 ...
- JUC中Executor基本知识
Future And Callable 引用 http://www.cnblogs.com/dolphin0520/p/3949310.html http://www.iocoder.cn/JUC/ ...
- Kali Linux安全渗透-从入门到精通
Kali-Linux是基于Debian Linux发行版 针对高级渗透测试和安全审计系统.带你一起从入门到精通. 什么是Kali-Linux? kali 包含几百个软件用来执行各种信息安全的任务,如渗 ...
- python3+requests:post请求四种传送正文方式(详解)
前言:post请求我在python接口自动化2-发送post请求详解(二)已经讲过一部分了,主要是发送一些较长的数据,还有就是数据比较安全等,可以参考Get,Post请求方式经典详解进行学习一下. 我 ...
- 利用python 学习数据分析 (学习二)
内容学习自: Python for Data Analysis, 2nd Edition 就是这本 纯英文学的很累,对不对取决于百度翻译了 前情提要: 各种方法贴: https://w ...
- day00 -----博客作业1
问题1.使用while循环输入 1 2 3 4 5 6 8 9 10 i = 0 while i<10: i+=1 if i ==7: continue print(i) 问题2 求1- ...
- 初识gulp
之前一段时间学习使用了gulp自动化构建工具,并在现在使用的项目上部署使用,同时在这做个笔记进行小结,以便加深记忆,如有理解错误的地方请不吝赐教 gulp 的解释我就不多说了 这里引用官网的一句话 ...
- 2017 最新的 cocoaPods 安装方法
经过努力终于发现了最新的 解决cocoaPods安装的办法: taobao Gems 源已停止维护,现由 ruby-china 提供镜像服务 第一步:安装rvm, 不管需不需要升级ruby,rvm可以 ...