这段时间需要用nodejs做服务器,所以学习了一下,为了加深印象,就每天记笔记吧,呵呵;
今天看了个nodejs的helloworld程序,简单的http服务器:
var http = require("http");
http.createServer(function (request,respond)
{
console.log("request received");
respond.writeHead(200,{"content-Type":"text/plain"});
respond.write("hello world");
respond.end();
}).listen(8888);
console.log("http server started");
第一行的require用于请求模块相当于c++的include和java的import,这把我们的本地变量变成了一个拥有所有 http 模块所提供的公共方法的对象;“http”是nodejs自带的模块;接下来我们http模块提供的函数: createServer 。这个函数会返回一个对象,这个对象有一个叫做 listen 的方法,这个方法有一个数值参数,指定这个HTTP服务器监听的端口号。
这里creatServer唯一的参数是个函数,和actionscript的区别在于,as的Function类有两个函数apply和call用于处理这种调用,而nodejs则是直接调用;
.listen(8888),这句话的意思是creatServer函数返回值是一个对象,返回之后调用对象方法listen(port);
start node server.js之后我发现每次访问127.0.0.1:8888的时候"request received"都会输出两次,查询之后发现原因如下:大部分服务器都会在你访问 http://localhost:8888 /时尝试读取 http://localhost:8888/favicon.ico