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 ...
随机推荐
- jenkin+docker+git持续集成环境搭建
1.安装Jenkins(需要在Jenkins容器中安装maven,java环境不用安装,Jenkins初次启动时会自动安装) 参考:docker中安装Jenkins 2.配置git 3.安装docke ...
- MSSQL中通过关键字查找所有存储过程
select b.namefrom 数据库名.dbo.syscomments a, 数据库名.dbo.sysobjects bwhere a.id=b.id and b.xtype='p' and a ...
- Sql 四大排名函数(ROW_NUMBER、RANK、DENSE_RANK、NTILE)
row_number() over() 1.2.3.4.5.6.7 rank() over() 1.2.2.4.5.5.7 dense_rank() over() 1.2.2.3.3.4.5 n ...
- WPF上下滚动字幕
XAML代码: <local:WorkSpaceContent x:Class="SunCreate.CombatPlatform.Client.NoticeMarquee" ...
- 第四界css大会 黑魔法-css网格背景、颜色拾取器、遮罩、文字颜色渐变、标题溢出渐变等
1.css网格背景 <!DOCTYPE html> <html lang="en"> <head> <meta charset=" ...
- php扩展memcache和memcached区别?以及memcached软件的介绍
引用“http://www.vicenteforever.com/2012/03/memcache-different-memcached/” memcached是一个软件,而PHP包括了memcac ...
- [Virtualization] Virtualbox 转换磁盘格式(vboxmanage) disk to VMware
一.需求 今天去参加网络安全的培训,Engineer 分享了一份 Virtual box 虚拟机.但是只有我拷取了这份文件,小伙伴们都是装的 VMware Workstation.那么该如何将vdi转 ...
- tf入门-池化函数 tf.nn.max_pool 的介绍
转载自此大神 http://blog.csdn.net/mao_xiao_feng/article/details/53453926 max pooling是CNN当中的最大值池化操作,其实用法和卷积 ...
- java_I/O字节流
I/O流(Stream) INPUT:输入流,从文件里读OUPUT:输出流,写内容到文件 IO流分为:字符流和字节流 字符流:处理纯文本文件. 字节流:处理可以所有文件. 测试字节输出流OuPut(写 ...
- STM32-RS232通信软硬件实现
OS:Windows 64 Development kit:MDK5.14 IDE:UV4 MCU:STM32F103C8T6/VET6 AD:Altium Designer 18.0.12 1.RS ...