nodejs-02 在網頁顯示hello~、關於 require('http')、callback

callback的觀念參考:http://www.nodebeginner.org/index-zh-tw.html
server端的主程式:index.js var http=require('http');
http.createServer(function(req,res){
console.log("http request running...");
res.writeHead(200,{"Content-Type":"text/plain"});
res.end('hello~~');
}).listen(8888);
console.log("index.js running...");
在chrome或ie上執行http://localhost:8888/或127.0.0.1:8888,觀察執行結果

解說:
var http=require('http'); //載入http模組,nodejs內建,類似php的include、as的import
http.createServer(function(req,res){ //req:HTTP request的所有資料;res:HTTP response的所有資料
console.log("http request running...");//當有連線需求時,便會執行
res.writeHead(200,{"Content-Type":"text/plain"});//HTTP標頭檔狀態碼,200是指成功
res.end('hello~~');//在網頁端顯示hello~
}).listen(8888);//監聽8888port
console.log("index.js running...");//server執行成功時執行

關於HTTP標頭檔的狀態碼:
中文參考網址http://thobian.info/?p=318
英文詳細狀態碼http://en.wikipedia.org/wiki/List_of_HTTP_status_codes
200 用來表示請求成功.
300 來表示重定向.
400 用來表示請求出現問題.
500 用來表示伺服器出現問題.

[[2015-05-24補充 同步與非同步]]
1.建立一個文字檔,存成file.txt,內容為This is my file....
2. 非同步
2.1建立readfile.js,內容為:

var fs=require('fs');
fs.readFile('file.txt','utf-8',function(err,data){
if(err){
console.error(err);
}else{
console.log(data);
}
});
console.log('end');

2.2執行結果為:
end
This is my file....

3.同步
3.1建立readfilesync.js,內容為:
var fs=require('fs');
var data=fs.readFileSync('file.txt','utf-8');
console.log(data);
console.log('end');

3.2執行結果為:
end
This is my file....

4.會發現readfile.js跟readfilesync.js產生的結果順序不同,書上提到並非所有的api都提供同步跟非同步的版本,node.js並不推同步I/O
Category:

0 意見: