NodeJs学习笔记 05 -- 使用node进行web开发(未完)

  • var http = require(‘http’);
    搭建一个http的服务器,用于处理用户发送的http请求,需要使用node提供一个http模块。

  • var server = http.createServer([requestListener]);
    通过http模块下的createServer创建并返回一个web服务器对象。

  • server.listen(port, [hostname], [backlog], [callback])
    监听客户端的连接请求,只有调用了监听方法以用,服务器才开始工作。
    -监听的端口,不传时,通过console.log(server.address())可以看到系统默认分配的端口。一般设置大于1024。
    -主机名(IP/域名),如果省略主机名,服务器会接收指向任意IPv4地址的链接。
    -连接等待队列的最大长度,实际长度由您的操作系统通过 sysctl 设置决定,比如 Linux 上的 tcp_max_syn_backlog 和 somaxconn。该参数缺省值为 511(不是 512)。
    -调用listen方法并成功开启监听以后,会触发一个listening事件,callback将作为该事件的执行函数。
    -失败后触发error事件。

server.on('error', function(err){
    console.log(err);
});

server.on('listening', function() {
    console.log('listening...');
})

有请求时会触发request事件,function (request, response) { },
request是http.IncomingMessage的一个实例。response是http.ServerResponse的一个实例,
这个事件也可以作为createServer的回调函数。

server.on('request', function(req, res) {
    console.log('有客户端请求了');
    //console.log(req);
    //res.write('hello');
    res.setHeader('miaov', 'leo');
    res.writeHead(200, 'miaov', {
        //'content-type' : 'text/plain'
        'content-type' : 'text/html;charset=utf-8'
    });
    res.write('<h1>hello</h1>');
    res.end();
})

http.IncomingMessage
一个 IncomingMessage对象是由 http.Server或http.ClientRequest创建的,并作为第一参数分别传递给’request’和’response’ 事件。它也可以被用来访问应答的状态,头文件和数据。

request.write(chunk, [encoding])
发送一块请求体。调用该方法多次,用户可以流式地发送请求体至服务器——在这种情况下,创建请求时建议使用[‘Transfer-Encoding’, ‘chunked’]头。
chunk 参数必须是 Buffer 或者 string。
encoding 参数是可选的, 并且只能在 chunk 是 string 类型的时候才能设置. 默认是 ‘utf8’。

request.end([data], [encoding])
结束发送请求。如果请求体的某些部分还发送,该函数将会把它们flush到流中。如果该请求是分块的,该方法将会发送终结符0\r\n\r\n。
如果指定了data,那么等价于 先调用request.write(data, encoding),再调用 request.end()。

request.abort()
终止一个请求。

request.setTimeout(timeout, [callback])
一旦一个套接字被分配给该请求并且完成连接,socket.setTimeout()将会被调用。

response.write(chunk, [encoding])
如果这个方法被调用但是 response.writeHead() 没有被调用,它将切换到默认header模式并更新默认的headers。

response.writeHead(statusCode, [reasonPhrase], [headers])
向请求回复响应头. statusCode是一个三位是的HTTP状态码, 例如 404. 最后一个参数, headers, 是响应头的内容. 可以选择性的,把人类可读的‘原因短句’作为第二个参数。
这个方法只能在当前请求中使用一次,并且必须在response.end()之前调用。
如果你在调用这之前调用了response.write()或者 response.end() , 就会调用这个函数,并且 不明/容易混淆 的头将会被使用。

response.setHeader(name, value)
为默认或者已存在的头设置一条单独的头内容。如果这个头已经存在于 将被送出的头中,将会覆盖原来的内容。如果我想设置更多的头, 就使用一个相同名字的字符串数组。

response.setTimeout(msecs, callback)
设定套接字的超时时间为msecs。如果提供了回调函数,会将其添加为响应对象的’timeout’事件的监听器。

response.statusCode
当使用默认headers时(没有显式地调用 response.writeHead() 来修改headers),这个属性决定headers更新时被传回客户端的HTTP状态码。

response.end([data], [encoding])
当所有的响应报头和报文被发送完成时这个方法将信号发送给服务器;服务器会认为这个消息完成了。 每次响应完成之后必须调用该方法
如果指定了参数 data , 就相当于先调用 response.write(data, encoding) 之后再调用 response.end().

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值