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文件的內容
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章