【管子先生的Node之旅·19】實(shí)現(xiàn)簡單的靜態(tài)文件托管

images.png
我們來簡單的實(shí)現(xiàn)一下靜態(tài)文件托管
  1. 先來構(gòu)建一個基礎(chǔ)服務(wù)器
//引入相關(guān)模塊
const http = require('http'),
    fs = require('fs');
//創(chuàng)建服務(wù)器
const serv = http.createServer((req, res) => {
  //...
});
//監(jiān)聽
serv.listen(3000);
  1. 對路由進(jìn)行判斷塞琼,如果不存在路徑上則返回404
  //是否為GET請求及
    if (req.method == "GET") {
        //檢查是否為/images路徑下的png文件(此例子只對png文件處理)
        if (req.url.substr(0, 7) == "/images" && req.url.substr(-4) == '.png') {
           
        } else if (req.url == '/') {

        } else {
            res.writeHead(404, { 'Content-Type': 'text/html;charset=utf-8' });
            res.end('<h1>當(dāng)前頁面不存在腋寨!</h1>');
        }
    }
  1. 對請求文件進(jìn)行判斷梅誓,沒則返回空
fs.stat(__dirname + req.url, (err, stat) => {
    if (err || !stat.isFile()) {
        res.writeHead(404);
        res.end('文件不存在');
        return;
    }
});
  1. 對文件進(jìn)行處理,并輸出
// 文件處理
function serve(path, type) {
    res.writeHead(200, { 'Content-Type': type });
    //文件讀取奶赠,并輸出文件
    fs.createReadStream(path).pipe(res);
}
  1. 組合起來
//引入相關(guān)模塊
const http = require('http'),
    fs = require('fs');
//創(chuàng)建服務(wù)器
const serv = http.createServer((req, res) => {
    //是否為GET請求及
    if (req.method == "GET") {
        //檢查是否時(shí)/images路徑下的
        if (req.url.substr(0, 7) == "/images" && req.url.substr(-4) == '.png') {
            fs.stat(__dirname + req.url, (err, stat) => {
                if (err || !stat.isFile()) {
                    res.writeHead(404, { 'Content-Type': 'text/html;charset=utf-8' });
                    res.end('<h1>當(dāng)前文件不存在踩娘!</h1>');
                    return;
                }
                serve(__dirname + req.url, "image/png");
            });
        } else if (req.url == '/') {
            serve(__dirname + '/index.html', 'text/html');
        } else {
            res.writeHead(404, { 'Content-Type': 'text/html;charset=utf-8' });
            res.end('<h1>當(dāng)前頁面不存在娘荡!</h1>');
        }
    }
    // 文件處理
    function serve(path, type) {
        res.writeHead(200, { 'Content-Type': type });
        //文件讀取搔谴,并輸出文件
        fs.createReadStream(path).pipe(res);
    }
});
//監(jiān)聽
serv.listen(3000);
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末魁袜,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子己沛,更是在濱河造成了極大的恐慌慌核,老刑警劉巖,帶你破解...
    沈念sama閱讀 216,402評論 6 499
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件申尼,死亡現(xiàn)場離奇詭異垮卓,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)师幕,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,377評論 3 392
  • 文/潘曉璐 我一進(jìn)店門粟按,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人霹粥,你說我怎么就攤上這事灭将。” “怎么了后控?”我有些...
    開封第一講書人閱讀 162,483評論 0 353
  • 文/不壞的土叔 我叫張陵庙曙,是天一觀的道長。 經(jīng)常有香客問我浩淘,道長捌朴,這世上最難降的妖魔是什么吴攒? 我笑而不...
    開封第一講書人閱讀 58,165評論 1 292
  • 正文 為了忘掉前任,我火速辦了婚禮砂蔽,結(jié)果婚禮上洼怔,老公的妹妹穿的比我還像新娘。我一直安慰自己左驾,他們只是感情好镣隶,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,176評論 6 388
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著诡右,像睡著了一般安岂。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上稻爬,一...
    開封第一講書人閱讀 51,146評論 1 297
  • 那天嗜闻,我揣著相機(jī)與錄音,去河邊找鬼桅锄。 笑死琉雳,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的友瘤。 我是一名探鬼主播翠肘,決...
    沈念sama閱讀 40,032評論 3 417
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼辫秧!你這毒婦竟也來了束倍?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 38,896評論 0 274
  • 序言:老撾萬榮一對情侶失蹤盟戏,失蹤者是張志新(化名)和其女友劉穎绪妹,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體柿究,經(jīng)...
    沈念sama閱讀 45,311評論 1 310
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡邮旷,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,536評論 2 332
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了蝇摸。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片婶肩。...
    茶點(diǎn)故事閱讀 39,696評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖貌夕,靈堂內(nèi)的尸體忽然破棺而出律歼,到底是詐尸還是另有隱情,我是刑警寧澤啡专,帶...
    沈念sama閱讀 35,413評論 5 343
  • 正文 年R本政府宣布险毁,位于F島的核電站,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏畔况。R本人自食惡果不足惜离唐,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,008評論 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望问窃。 院中可真熱鬧,春花似錦完沪、人聲如沸域庇。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,659評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽听皿。三九已至,卻和暖如春宽档,著一層夾襖步出監(jiān)牢的瞬間尉姨,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,815評論 1 269
  • 我被黑心中介騙來泰國打工吗冤, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留又厉,地道東北人。 一個月前我還...
    沈念sama閱讀 47,698評論 2 368
  • 正文 我出身青樓椎瘟,卻偏偏與公主長得像覆致,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子肺蔚,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,592評論 2 353

推薦閱讀更多精彩內(nèi)容