Node.js學習之內建模組http
阿新 • • 發佈:2019-02-15
'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檔案的內容