目录:
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. 【Ckediter】

  2. mysql安装和配置

    一.下载mysql mysql下载页 我用的是5.6,点击旁边的"Looking for previous GA versions?"按钮就能看到5.6版本 mysql-5.6.3 ...

  3. Beta阶段第三次Scrum Meeting

    情况简述 Beta阶段第三次Scrum Meeting 敏捷开发起始时间 2016/12/12 22:00 敏捷开发终止时间 2016/12/13 22:00 会议基本内容摘要 讨论决定了APP的名称 ...

  4. python取mysql数据写入excel

    环境:MySQLdb openpyxl模块 python去zabbix的mysql数据库中取交换机不同时间段的进出口流量,然后写入excel中,每天cron执行,每周四邮件发送.(代码中第一行必须加上 ...

  5. 最简单的STM32入门教程----闪烁LED

    本文讲述的是如何从零开始,使用keil建立一个简单的STM32的工程,并闪烁LED灯,给小白看. 第零步,当然首先你得有一个STM32的板子,其IO口上接了一个LED... 第一步,建立一个文件夹0. ...

  6. Hadoop概括——学习笔记<一>

    之前有幸在MOOC学院抽中小象学院hadoop体验课. 这是小象学院hadoop2.X概述第一章的笔记 第一章主要讲的是hadoop基础知识.老师讲的还是比较全面简单的,起码作为一个非专业码农以及数据 ...

  7. MVVM开发模式简单实例MVVM Demo

    本文主要是翻译Rachel Lim的一篇有关MVVM模式介绍的博文 A Simple MVVM Example 并具体给出了一个简单的Demo(原文是以WPF开发的,对于我自己添加或修改的一部分会用红 ...

  8. Android高手速成--第一部分 个性化控件(View)

    第一部分 个性化控件(View) 主要介绍那些不错个性化的View,包括ListView.ActionBar.Menu.ViewPager.Gallery.GridView.ImageView.Pro ...

  9. windows环境下面安装Apache2.4+MySql5.7+PHP5.6

    之前学习PHP一致是只用phpStudy集成开发环境,这对于新手而言无疑是帮助极大的,因为傻瓜式安装与使用方法减少了我们很多不必要的麻烦.但是作为一名合格的PHP开发人员,掌握PHP+MySQL+Ap ...

  10. jquery选择器(总结)

    基本选择器 选择器 描述 示例 #id 根据给定的ID匹配一个元素 $("#id")   .class 根据制定的class匹配一个元素 $(".class") ...