兄弟会8.9号笔记

2016-08-10  本文已影响0人  创可贴231

node.js模块学习

http 模块

fs     模块

url    模块

http 模块

HTTP

http.STATUS_CODES

http.createServer([requestListener])

http.createClient([port], [host])

Class: http.Server

事件 : 'request'

事件: 'connection'

事件: 'close'

Event: 'checkContinue'

事件: 'connect'

Event: 'upgrade'

Event: 'clientError'

server.listen(port, [hostname], [backlog], [callback])

server.listen(path, [callback])

server.listen(handle, [callback])

server.close([callback])

server.maxHeadersCount

server.setTimeout(msecs, callback)

server.timeout

Class: http.ServerResponse

事件: 'close'

response.writeContinue()

response.writeHead(statusCode, [reasonPhrase], [headers])

response.setTimeout(msecs, callback)

response.statusCode

response.setHeader(name, value)

response.headersSent

response.sendDate

response.getHeader(name)

response.removeHeader(name)

response.write(chunk, [encoding])

response.addTrailers(headers)

response.end([data], [encoding])

http.request(options, callback)

http.get(options, callback)

Class: http.Agent

new Agent([options])

agent.maxSockets

agent.maxFreeSockets

agent.sockets

agent.freeSockets

agent.requests

agent.destroy()

agent.getName(options)

http.globalAgent

Class: http.ClientRequest

Event 'response'

Event: 'socket'

事件: 'connect'

Event: 'upgrade'

Event: 'continue'

request.write(chunk, [encoding])

request.end([data], [encoding])

request.abort()

request.setTimeout(timeout, [callback])

request.setNoDelay([noDelay])

request.setSocketKeepAlive([enable], [initialDelay])

http.IncomingMessage

事件: 'close'

message.httpVersion

message.headers

message.rawHeaders

message.trailers

message.rawTrailers

message.setTimeout(msecs, callback)

message.method

message.url

message.statusCode

message.socket

简单实例

var http = require('http') ;

var server = http.createServer(function(req,res){

res.writeHeader(200,{

'Content-Type' : 'text/plain;charset=utf-8'  // 添加charset=utf-8

}) ;

res.end("Hello,干嘛!") ;

}) ;

server.listen(8888) ;

console.log("http server running on port 8888 ...") ;

运行结果

Hello,干嘛!

fs 模块

文件系统模块是一个简单包装的标准 POSIX 文件 I/O 操作方法集。可以通过调用 require("fs") 来获取该模块。文件系统模块中的所有方法均有异步和同步版本。

(1),文件系统模块中的异步方法需要一个完成时的回调函数作为最后一个传入形参。

(2),回调函数的构成由调用的异步方法所决定,通常情况下回调函数的第一个形参为返回的错误信息。

(3),如果异步操作执行正确并返回,该错误形参则为null或者undefined。如果使用的是同步版本的操作方法,一旦出现错误,会以通常的抛出错误的形式返回错误。

(4),可以用try和catch等语句来拦截错误并使程序继续进行。

我们先看一个简单的例子,读取文件("bb.txt"):

(1),建立文件"bb.txt“,如下内容(”大家好“)。

(2),读取文件操作如下代码:

事例

var fs = require("fs") ;

fs.readFile("bb.txt","utf8",function (error,data){

if(error) throw error ;

console.log(data) ;

}) ;

运行结果  :

大家好

url    模块

处理HTTP请求时url模块使用率超高,因为该模块允许解析URL、生成URL,以及拼接URL。首先我们来看看一个完整的URL的各组成部分。

1 var url = require('url');

2 var queryUrl = "http://localhost:8888/bb?name=bigbear&memo=helloworld" ;

3 console.log(typeof url.parse(queryUrl)) ;

4 console.log(url.parse(queryUrl)) ;

1 object // typeof

2

3 {

4     protocol: 'http:',

5     slashes: true,

6     auth: null,

7     host: 'localhost:8888',

8     port: '8888',

9     hostname: 'localhost',

10     hash: null,

11     search: '?name=bigbear&memo=helloworld',

12     query: 'name=bigbear&memo=helloworld',

13     pathname: '/bb',

14     path: '/bb?name=bigbear&memo=helloworld',

15     href: 'http://localhost:8888/bb?name=bigbear&memo=helloworld'

16 }

加以说明如下:

protocol: 请求协议

host: URL主机名已全部转换成小写, 包括端口信息

auth:URL中身份验证信息部分

hostname:主机的主机名部分, 已转换成小写

port: 主机的端口号部分

pathname: URL的路径部分,位于主机名之后请求查询之前

search: URL 的“查询字符串”部分,包括开头的问号。

path: pathname 和 search 连在一起。

query: 查询字符串中的参数部分(问号后面部分字符串),或者使用 querystring.parse() 解析后返回的对象。

hash: URL 的 “#” 后面部分(包括 # 符号)

补充api:"url.format(urlObj)"

作用:输入一个 URL 对象,返回格式化后的 URL 字符串。

上一篇下一篇

猜你喜欢

热点阅读