nodejs-06 製作聊天室01 安裝套件-socket.io

接下來這幾篇要來寫聊天室的製作,首先要先裝socket.io。
socket.io網站: http://socket.io
中文介紹:http://ithelp.ithome.com.tw/question/10102886
開啟command視窗,輸入npm install socket.io 然後就會自動下載並安裝。
這東西我是直接把它當成server的概念來看待,安裝完後,我希望完成client跟server的互動如下圖:

Category: 0 意見

nodejs-05 安裝套件-supervisor

每當一改nodejs的程式後,想要測試時,就一定要把command視窗關掉,然後再開啟重新執行,若是路徑設得比較深入的人…真的光輸入路徑就浪費掉好多時間需按下Ctrl+C,重新啟動,幸好網路上已經有方便的套件可以使用,幫助我們解決這種困擾,安裝supervisor套件就是一個解決方法。

supervisor網站
https://github.com/isaacs/node-supervisor

開啟command視窗,輸入npm install supervisor -g 然後就會自動下載並安裝








安裝完後,要使用supervisor 程式名稱.js來取代之前用node 程式名稱.js
例如前面的範例的程式檔名都是index.js 所以我都是執行 node index.js,現在的話,就是改成執行 supervisor index.js來啟動程式。

之後若是有修改index.js,就不用再重新啟動command視窗,它會自動更新。

 ps.
以後如果想安裝其它套件,只需要輸入下列語法:

npm install 套件名稱 -g 

其中-g指的全域安裝,不論你的程式在那裡,都可以使用這個套件;
若是非全域安裝的話,就要注意你指行install指令的命令下在那個資料夾,那就只有那個資料夾有安裝套件。
Category: 0 意見

nodejs-04 讀取靜態資料(網頁、圖片等)

修改nodejs-03的程式碼:
server端的主程式:index.js
var fs=require('fs');
var http=require('http');
http.createServer(function(req,res){
 console.log(req.url);
 var url=req.url.substr(1);
 console.log(url);
 fs.readFile(url,function(err,data){
  if(err){
   res.writeHead(400);
   res.end();
  }else{
   res.writeHead(200);
   res.end(data);
  }
 });
}).listen(8888);

解說:
console.log(req.url);
//createServer的function帶兩個變數:req、res
//req:跟http request 相關的所有資料
//res:跟http response 相關的所有資料
//req.url可以抓到在瀏覽器開啟時,要求的檔案路徑是什麼,ex:http://localhost:8888/index.html,抓到的就是/index.html

var url=req.url.split('/');
//req.url第一個斜線拿掉,fs.readFile只需要後面的路徑

res.writeHead(400);
res.end();
//找不到擋案時,head回傳錯誤狀態400,讓前端導向找不到網頁
Category: 0 意見