這段時間需要用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