03 2016 档案
摘要:上一博客学习了请求与响应,2次读2次写,但有一个问题就是客户端写入的时候怎么知道请求到达。所以HTTP Server对象出现了。它提供了实现HTTP服务器的基本框架。它可以监听端口的底层套接字和接收请求,然后发送响应给客户端连接的处理程序。 它提供了一下几个事件: request:当服务器收到客户端
阅读全文
摘要:在C#、OC中也是客户端发起一个请求,服务端作出响应。我们可以把这个过程抽象理解 . 1.客户端给服务端发起请求相当于向服务端写入一个流(writable) 2.服务端读取客户端的流(readable) 3.服务端向客户端作出响应相当于向客户端写入一个流(writable) 4.客户端读取服务端的响
阅读全文
摘要:几乎每门编程语言都会包括网络这块,Node.js也不例外。今天主要是熟悉下Node.js中HTTP服务。其实HTTP模块是相当低层次的,它不提供路由、cookie、缓存等,像Web开发中不会直接使用,但还是要熟悉下,这样也方便以后的学习。 一、统一资源标识符URL 这个是非常常见的,在Node.js
阅读全文
摘要:Node.js中提供了一个很好的库Zlib来压缩解压数据。 一、压缩缓冲区 Zlib中有下面几个函数方便解压缩缓冲区. gzip/gunzip:标准gzip压缩. deflate/inflate:基于Huffman编码的标准deflate压缩算法。 deflateRaw/inflateRaw:针对原
阅读全文
摘要:前面的博客 Node.js文件操作一中主要是对文件的读写操作,其实还有文件这块还有一些其他操作. 一、验证文件path是否正确(系统是如下定义的) 二、获取文件信息 获取文件信息用fs.stats(path,callback)、fs.statsSync(path),它们返回Stats对象.下面是系统
阅读全文
摘要:Node.js和其他语言一样,也有文件操作。先不说node.js中的文件操作,其他语言的文件操作一般也都是有打开、关闭、读、写、文件信息、新建删除目录、删除文件、检测文件路径等。在node.js中也是一样,也都是这些功能,可能就是api与其他语言不太一样。 一、同步、异步打开关闭 其中的flags其
阅读全文
摘要:Duplex流一个很好的例子是TCP套接字连接.需要实现_read(size)和_Write(data,encoding,callback)方法. Transform变换流扩展了Duplex流,不需要实现而是直接提供。但要实现_transform(chunk,encoding,callback)._
阅读全文
摘要:一、前传 Stream在很多语言都会有,当然Node.js也不例外。数据流是可读、可写、或即可读又可写的内存结构。Node.js中主要包括Readable、Writable、Duplex(双工)和Transform(变换)流。但是在学这些之前先学会util模块中的一个从其他对象继承的功能. util
阅读全文
摘要:一、前传 在之前做web时也经常用到js对象转json和json转js对象.既然是Node.js处理I/O数据,也把这个记下来。 Json转Js对象:JSON.parse(jsonstr); //可以将json字符串转换成json对象 Js对象转Json:JSON.stringify(jsonobj
阅读全文
摘要:由于异步的关系,代码的书写顺序可能和执行顺序并不一样,可能想先执行A再执行B,但由于异步可能B要先于A执行.例如在OC中使用AFnetworking请求数据然后刷新页面,由于网络请求是用block实现的异步方法,所以刷新的时候并没有数据,为了解决这个问题,一般会在请求响应结束在block中刷新页面(
阅读全文
摘要:一、Node.js是以事件驱动的,那我们自定义的一些js对象就需要能监听事件以及发射事件。在Node.js中事件使用一个EventEmitter对象发出,该对象在events模块中。它应该是使用观察者设计模式来实现把事件监听器添加到对象以及移除,之前写OC那块的时候也有些观察者设计模式,在OC中也经
阅读全文
摘要:一、Webstrom使用node.js IDE的问题 在区别这两个函数之前来说一下Webstrom使用node.js IDE的问题,在配置Node.js的IDE了,但setImmediate()、require等这些node.js中内置的函数时并不会有提示,要解决这个问题只要设置一下Webstrom
阅读全文
摘要:一、传统线程网络模型 在了解Node.js事件驱动模型之前,我们先了解一下传统的线程网络模型,请求进入web服务器(IIS、Apache)之后,会在线程池中分配一个线程来线性同步完成请求处理,直到请求处理完成并发出响应,结束之后线程池回收。 这就会就会带来以下几个问题 : 1.由于线程池中线程个数有
阅读全文
摘要:Node.js中也有一些功能的封装,类似C#的类库,封装成模块这样方便使用,安装之后用require()就能引入调用. 一、Node.js模块封装 1.创建一个名为censorify的文件夹 2.在censorify下创建3个文件censortext.js、package.json、README.m
阅读全文
摘要:今年打算学习Web这块,所以就买了本Node.js+MongoDb+AngularJS这本书,这周天也比较忙,想着录视频(拍小片,不是AV,不要误会,是在线课程)的事情,这周又将Asp.Net Mvc4 web 编程算是看了一遍,还有工作iOS这块基本就差接口了,所以也没多少空闲时间,今天下午的时候
阅读全文