一、fs模块

(1)查看文件状态

fs.stat(path, callback) / statSync(path)

(2)创建目录

fs.mkdir(path, callback) / mkdirSync(path)

(3)移除目录

fs.rmdir(path, callback) / rmdirSync(path)

使用异步移除目录mydir

使用同步移除目录mydir2

(4)读取目录

fs.readdir(path, callback) / readdirSync(path)

callback

err 可能产生的错误

result  读取的结果,格式为数组

(5)创建文件/写入文件

fs.writeFile( path, data, callback )

/ writeFileSync(path,data)

data要写入的数据

如果文件不存在,会创建文件并写入数据;

如果文件已经存在,会清空文件中内容,然后写入数据

(6)追加写入文件

fs.appendFile(path, data, callback) /

appendFileSync(path, data)

如果文件不存在,会创建文件,然后写入数据

如果文件已经存在,会再文件的末尾写入数据

练习:创建数组,每个元素是一个课程名称,遍历数组,分别获取元素,将数据使用同步方法写入到文件data.txt

(7)读取文件

fs.readFile(path, callback) / readFileSync(path)

callback

err

data  读取的数据,格式为buffer

(8)删除文件

fs.unlink(path, callback) / unlinkSync(path)

(9)判断文件是否存在

fs.existsSync(path)

练习:判断data.txt是否存在,如果存在,则删除

(10)文件流

var readStream=fs.createReadStream(文件路径)  //创建可读流

readStream.on('data', function(chunk){   })

当有数据流入,自动触发事件;

通过回调函数来获取 ,chunk就是获取的数据流

readStream.on('end', function(){     })

当读取结束,自动触发事件

pipe  管道,可以将数据从可读流添加到可写流

2.http协议

浏览器和web服务器之间的通信协议

(1)通用头信息

Request URL: 请求的URL,对应浏览器地址栏;向服务器获取哪些内容

Request Method: 请求的方法,获取内容的方法 get/post

Status Code: 响应的状态码

1**:正在响应,还没有结束

2**:成功的响应

3**:响应的重定向,跳转到另一个URL

4**:客户端请求错误

5**:服务器端错误

Remote Address:请求的服务器的IP地址及端口号

(2)响应头信息

Connection: 连接方式,keep-alive 持久连接

Content-Encoding: 内容压缩形式, gzip

Content-Type: 响应的文件类型

Location: 跳转的URL,常配合着状态码3**使用

(3)请求头信息

Accept: 浏览器接收的文件类型有哪些

Accept-Encoding: 接收的压缩形式有哪些

User-Agent: 客户端使用的浏览器版本

(4)请求主体

可有可无,浏览器向服务器发请求传递的数据

3.http模块

模拟浏览器向web服务器发请求,还可以创建web服务器

(1)模拟浏览器

http.get(url, callback)  发送请求

url  请求的URL

callback  回调函数,获取服务器端的响应

res  响应的对象

res.statusCode  获取响应的状态码

res.on('data', function(chunk){   })

事件: 监听服务器端是否有数据传输过来

chunk  就是传输的数据,格式为buffer

(2)创建web服务器

var app=http.createServer(); //创建web服务器

app.listen(8080);//设置监听的端口

//监听浏览器的请求

app.on('request', function(req,res){

req  请求的对象

req.url  请求的url,获取端口号后边的部分

req.method  请求的方法

req.headers  请求的头信息

res  响应的对象

res.write()  设置响应的内容

res.writeHead( 状态码, 头信息对象 )

res.end()  结束并发送响应到浏览器

})

最新文章

  1. bzoj1723--前缀和(水题)
  2. Sharepoint学习笔记—习题系列--70-576习题解析 -(Q144-Q146)
  3. 百度地图API的IP定位城市和浏览器定位(转)
  4. 代理 XP”组件已作为此服务器安全配置的一部分被关闭。系统管理员可以使用 sp_configure 来启用“代理 XP”。
  5. cv_prj2
  6. PHP中include和require(转)
  7. 在Eclipse上建立hadoop2.2.0/hadoop2.4.0源代码阅读环境
  8. [IR] Boolean retrieval
  9. HTML-Canvas01
  10. C/C++ 一段代码区分数组指针|指针数组|函数指针|函数指针数组
  11. lazyload 分页加载
  12. mysql DDL语句
  13. JDBC 异常特殊原因 (数据库只读解决办法)
  14. 新概念英语(1-49)At the butcher's
  15. Java内存泄漏分析系列之一:使用jstack定位线程堆栈信息
  16. ELK 起航
  17. css特殊样式
  18. cookie和session 以及Django中应用
  19. mysql安装后不是内部或外部命令解决
  20. Solr搜索结果说明 (转)

热门文章

  1. tp5 -- 控制器的参数
  2. memcache雪崩
  3. Python学习16之input函数
  4. 基于jenkins自动打包并部署Tomcat环境
  5. cut,xargs,sort,tr,rename命令解析
  6. 【ejabberd】安装XMPP服务器ejabberd(Ubuntu 12.04)
  7. MySQL5.7 并行复制
  8. webpack打包多入口配置
  9. Bind+DLZ+MySQL智能DNS的正向解析和反向解析实现方法
  10. 2020年ubuntu1804安装nginx最新稳定版1.16详细教程笔记