nodejs 创建http server

1, http module require: var声明变量,require在引用module的时候,module名字用''引用。

var http=require('http');

2,http的几个方法:

http.createServer([requestListener])#

Returns a new web server object.

The requestListener is a function which is automaticallyadded to the 'request' event.


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

Begin accepting connections on the specified port and hostname. If thehostname is omitted, the server will accept connections directed to anyIPv4 address (INADDR_ANY).

To listen to a unix socket, supply a filename instead of port and hostname.

Backlog is the maximum length of the queue of pending connections.The actual length will be determined by your OS through sysctl settings such astcp_max_syn_backlog and somaxconn on linux. The default value of thisparameter is 511 (not 512).

This function is asynchronous. The last parameter callback will be added asa listener for the 'listening' event. See also net.Server.listen(port).



3,http.ServerResponse

Class: http.ServerResponse#

This object is created internally by a HTTP server--not by the user. It ispassed as the second parameter to the 'request' event.


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

Sends a response header to the request. The status code is a 3-digit HTTPstatus code, like 404. The last argument, headers, are the response headers.Optionally one can give a human-readable reasonPhrase as the secondargument.

Example:

var body = 'hello world';
response.writeHead(200, {
  'Content-Length': body.length,
  'Content-Type': 'text/plain' });

This method must only be called once on a message and it mustbe called before response.end() is called.

If you call response.write() or response.end() before calling this, theimplicit/mutable headers will be calculated and call this function for you.

Note: that Content-Length is given in bytes not characters. The above exampleworks because the string 'hello world' contains only single byte characters.If the body contains higher coded characters then Buffer.byteLength()should be used to determine the number of bytes in a given encoding.And Node does not check whether Content-Length and the length of the bodywhich has been transmitted are equal or not.

response.write(chunk, [encoding])#

If this method is called and response.writeHead() has not been called,it will switch to implicit header mode and flush the implicit headers.

This sends a chunk of the response body. This method maybe called multiple times to provide successive parts of the body.

chunk can be a string or a buffer. If chunk is a string,the second parameter specifies how to encode it into a byte stream.By default the encoding is 'utf8'.

Note: This is the raw HTTP body and has nothing to do withhigher-level multi-part body encodings that may be used.

The first time response.write() is called, it will send the bufferedheader information and the first body to the client. The second timeresponse.write() is called, Node assumes you're going to be streamingdata, and sends that separately. That is, the response is buffered up to thefirst chunk of body.

Returns true if the entire data was flushed successfully to the kernelbuffer. Returns false if all or part of the data was queued in user memory.'drain' will be emitted when the buffer is again free.

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

This method signals to the server that all of the response headers and bodyhave been sent; that server should consider this message complete.The method, response.end(), MUST be called on eachresponse.

If data is specified, it is equivalent to calling response.write(data, encoding)followed by response.end().

4 小例子

#!/bin/nodejs
var http = require('http');

http.createServer(function(req, res)
{
        res.writeHead(404, {                                                                                                                                                                                 
        'Content-Type' : 'text/plain'
        });
        res.write("hello, wrold");
        res.end();
}).listen(3000);

console.log("welcome to http's hello world");



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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值