1. 程式人生 > >Node.js學習之內建模組http

Node.js學習之內建模組http

'use strict'
//導包
var
 http = require('http');
 var url = require('url')
 var path = require('path')
 var fs = require('fs')

 ////檔案伺服器,在瀏覽器視窗輸入html檔名稱,即可解析內容展示在頁面上

 //  返回當前命令列指令引數,通常第一個元素會是 'node', 第二個元素將是 .Js 檔案的名稱
 //比如我們在H盤的jssource目錄下開啟命令視窗輸入 node file_service.js 後面可以跟路徑,預設是當前H:/jssource
 //所以輸出的root是H:/jssource
//從命令列引數獲得root目錄 var root = path.resolve(process.argv[2]||'.'); console.log('Static root dir: ' + root); //建立一個伺服器,request和reponse分別代表了請求和響應,reponse封裝了writable var service = http.createServer(function(request,reponse){ console.log(request.method+request.url); //從請求的url中解析出路徑 var pathname = url.parse(request.url).pathname; //拼接成檔案系統的路徑
var filename = path.join(root,pathname); //檢視檔案狀態, fs.stat(filename,function(err,stat){ if(!err && stat.isFile){ reponse.writeHead(200); //不用end自動結束 fs.createReadStream(filename).pipe(reponse); }else{ console.log('檔案出錯了'
+request.url); reponse.writeHead(404); reponse.end('404 NOT Find'); } }); }); service.listen(8080); console.log('Server is running at http://127.0.0.1:8080/'); //在jssource目錄下建立一個html檔案,在命令列執行js後,在瀏覽器位址列輸入http://localhost:8080/index.html,即可輸出html檔案的內容