目录:
node01-创建服务器
node02-util
node03-events
node04-buffer
node05-fs
node06-path
node07-http
node08-express
node09-cookie

http模块:

文件上传:

html:

 <!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>post</title>
<link rel="stylesheet" href="post.css">
</head>
<body>
<form action="/post" method="post" enctype="multipart/form-data">
用户名:<input type="text" name="user"><br>
密码:<input type="password" name="pass"><br>
<input type="file" name="fileup"><br>
<input type="submit" value="提交">
</form>
<div id="time">time</div>
</body>
<script src="post.js"></script>
</html>

js:

 window.onload = function(){
var time = document.getElementById("time");
var timer = setInterval(function(){
var ajax = new XMLHttpRequest();
ajax.open("get","/ajax?user=zhaoyang&pass=123",true);
ajax.send();
ajax.onload = function(){
time.innerHTML = ajax.responseText;
}
},1000); }

node(文件上传与get、post请求处理):

 /*
* http:超文本传输协议
* http模块:能够搭建服务器环境(模拟的客服端环境)
*
* */ var http = require("http");
var url = require("url");
var fs = require("fs");
var formidable = require("formidable");
var server = http.createServer(function (request,response) {
// console.log(request.url);
var urlObj = url.parse(request.url,true);
// console.log(urlObj);
// console.log(request.method);
// response.end("响应结束"); if(urlObj.pathname == "/10post.html" || urlObj.pathname == "/"){
//访问表单页面
var rs = fs.createReadStream("10post.html");
rs.pipe(response);
// response.end();不能带end()
}else if(urlObj.pathname == "/post"){
// console.log(urlObj);
// request.on("data",function(chunk){
// console.log(chunk);
// }); var form = new formidable.IncomingForm();
form.parse(request,function (err,fields,files) {
// console.log(fields);
console.log(files);
console.log(files.fileup.path);//文件上传的临时路径 files.fileup.path
fs.createReadStream(files.fileup.path).pipe(fs.createWriteStream("./upload/" + files.fileup.name)); });
response.end();
}else if(urlObj.pathname == "/ajax"){
var newTime = new Date();
response.end(newTime.toString());
}else if(urlObj.pathname == "/req"){
console.log(urlObj.query);
var result= "";
request.on("data",function(chunk){
result += chunk.toString();
});
request.on("end",function(err){
response.end("参数是" + result);
})
response.end("参数是" + JSON.stringify(urlObj.query));
}else if(urlObj.pathname != "/favicon.ico"){
//其他的所有页面
// ./post.css
console.log(urlObj.pathname);
fs.createReadStream("." + urlObj.pathname).pipe(response);
}
});
server.listen(2333);

GET、POST请求:

 var http = require("http");
var request = http.request({
host:"localhost",
port:"2333",
path:"/req?user=zhaoyang&pass=123",
// path:"/req",
method:"POST",
},function (res) {
console.log(res.statusCode);
var result = "";
res.on("data",function(chunk){
result += chunk;
});
res.on("end",function(err){
console.log(result);
});
});
request.write('{"user":"zhaoyang","pass":"123"}');
request.end();//结束请求体

node07-http的更多相关文章

  1. node07

    ---恢复内容开始--- 1.SQL基本查询语句 2.子句 1)WHERE 子句 WHERE key=val WHERE key>val WHERE key1>val1 AND key2& ...

  2. 在一个排序的链表中,存在重复的结点,请删除该链表中重复的结点,重复的结点不保留,返回链表头指针。 例如,链表1->2->3->3->4->4->5 处理后为 1->2->5

    // test20.cpp : 定义控制台应用程序的入口点. // #include "stdafx.h" #include<iostream> #include< ...

  3. 输入一个复杂链表(每个节点中有节点值,以及两个指针,一个指向下一个节点,另一个特殊指针指向任意一个节点),返回结果为复制后复杂链表的head。(注意,输出结果中请不要返回参数中的节点引用,否则判题程序会直接返回空)

    // test20.cpp : 定义控制台应用程序的入口点. // #include "stdafx.h" #include<iostream> #include< ...

  4. hadoop1.2.1的安装

    前提:1.机器最好都做ssh免密登录,最后在启动hadoop的时候会简单很多 免密登录看免密登录 2.集群中的虚拟机最好都关闭防火墙,否则很麻烦 3集群中的虚拟机中必须安装jdk. 具体安装步骤如下: ...

  5. mac 下搭建Elasticsearch 5.4.3分布式集群

    一.集群角色 多机集群中的节点可以分为master nodes和data nodes,在配置文件中使用Zen发现(Zen discovery)机制来管理不同节点.Zen发现是ES自带的默认发现机制,使 ...

  6. 搭建Elasticsearch 5.4分布式集群

    多机集群中的节点可以分为master nodes和data nodes,在配置文件中使用Zen发现(Zen discovery)机制来管理不同节点.Zen发现是ES自带的默认发现机制,使用多播发现其它 ...

  7. Spark2.x(五十六):Queue's AM resource limit exceeded.

    背景: 按照业务需求将数据拆分为60份,启动60个application分别运行对每一份数据,application的提交脚本如下: #/bin/sh #LANG=zh_CN.utf8 #export ...

  8. hadoop学习笔记(九):mr2HA高可用环境搭建及处步使用

    本文原创,如需转载,请注明原文链接和作者 所用到的命令的总结: yarn:启动start-yarn.sh   停止stop-yarn.sh zk :zkServer.start ;:zkServer. ...

  9. Spark以yarn方式运行时抛出异常

    Spark以yarn方式运行时抛出异常: cluster.YarnClientSchedulerBackend: Yarn application has already exited with st ...

  10. 分布式文档存储数据库之MongoDB分片集群

    前文我们聊到了mongodb的副本集以及配置副本集,回顾请参考https://www.cnblogs.com/qiuhom-1874/p/13953598.html:今天我们来聊下mongodb的分片 ...

随机推荐

  1. Editplus常用快捷键

    EditPlus 快捷键的使用 如果一个来你们公司面试程序员,连Ctrl + C 和Ctrl + V 都不用,而是使用“选中文本”→ 鼠标右键 → [复制],然后再鼠标右键→ [粘贴].你会不会录用他 ...

  2. C 语言学习 第一次作业总结

    第一次的作业是冯老师布置的练习题,需要在pta平台上完成.我这边看不到结果,但是透过冯老师给出的截图,同学们都还是认真的去做的.同时,我这边也布置了一个持续 3 周的作业:熟悉 git 的使用.因为后 ...

  3. SpringBoot应用部署[转]

    在开发spring Boot应用的过程中,Spring Boot直接执行public static void main()函数并启动一个内嵌的应用服务器(取决于类路径上的以来是Tomcat还是jett ...

  4. linux shell if

    if用法: if [ ] ;then command; elif [ ] ;then command; else command fi if 参数: shell 编程中使用到得if语句内判断参数 –b ...

  5. js鼠标事件大全

    一般事件 事件 浏览器支持 描述 onClick HTML: 2 | 3 | 3.2 | 4 Browser: IE3 | N2 | O3 鼠标点击事件,多用在某个对象控制的范围内的鼠标点击 onDb ...

  6. Mysql主从配置,实现读写分离

    大型网站为了软解大量的并发访问,除了在网站实现分布式负载均衡,远远不够.到了数据业务层.数据访问层,如果还是传统的数据结构,或者只是单单靠一台服务器扛,如此多的数据库连接操作,数据库必然会崩溃,数据丢 ...

  7. noip2016 Day1T3

    理解错题意了....导致考场上直接爆零TAT 正解就是期望dp啊,dp[i][j][0/1]表示前i节课用了j次机会,这一次用没用的期望代价 看代码吧 #include<iostream> ...

  8. 如何合并多个PPT

    事情的起因大概是这样的: 于是我接收了文件 15个ppt,手动合并,我脑子有病吗,作为一个程序员,最基本的修养之一就是:超过三分钟的工作全部给电脑. 于是乎找到了pptjoin(一听名字就知道干嘛的) ...

  9. 有米实习-用到的shell脚本和Python脚本记录

    Shell:LOG_DATE=`date -d "1 day ago" +%Y-%m-%d` #以指定格式设置一天前的年份月份日期 aws s3 ls $LAST5_BASE_PA ...

  10. c#.Net:Excel导入/导出之NPOI 2.0简介

      NPOI 2.0+主要由SS, HPSF, DDF, HSSF, XWPF, XSSF, OpenXml4Net, OpenXmlFormats组成,具体列表如下: 资料来自:百度百科   Ass ...