NodeJS學(xué)習(xí)1

Node里的http和fs的模塊學(xué)習(xí)中見到的問題

node的fs模塊

//讀文件
//1.引包引入node所需要的讀取文件的模塊
var fs = require('fs');
//讀文件操作\n
//node具有大量的異步操作甘晤,讀取文件成功,獲取到文件的內(nèi)容需要利用回調(diào)函數(shù)紊扬,其中的回到哦函數(shù)具有2個(gè)參數(shù)宇整,
//err失敗操作err是一個(gè)錯(cuò)誤對(duì)象宾符,data無數(shù)據(jù)
//成功的話err為null晃酒,data為讀取到的2進(jìn)制數(shù)據(jù)
fs.readFile('./01.js', function(err, data) {
    if(!err) {
        console.log(data.toString());
    }else {
        console.log(err);
    }

});

讀文件的API的回調(diào)函數(shù)中的參數(shù)data返回的值為二進(jìn)制數(shù)Buffer格式數(shù)據(jù)故源;在輸出的時(shí)候要想轉(zhuǎn)換成需要利用toString()進(jìn)行轉(zhuǎn)換成字符串;

node的http模塊

請(qǐng)求次數(shù)問題

//http服務(wù)
//1.引包
var http = require('http');
//創(chuàng)建服務(wù)器
var server = http.createServer();
//設(shè)置請(qǐng)求處理函數(shù)
//事件監(jiān)聽request的請(qǐng)求账千;監(jiān)聽用戶的訪問事件侥蒙,來進(jìn)行事件處理,
/*回調(diào)函數(shù)居勇2個(gè)參數(shù):分別是
 * request:請(qǐng)求參數(shù)蕊爵,
 * response:服務(wù)器響應(yīng)的參數(shù)
 * 
 * */
server.on('request', function(req,res){
    //每請(qǐng)求一次頁(yè)面此處會(huì)輸出兩次
    console.log('進(jìn)去頁(yè)面');
    res.write('hello');
    res.end();

});

//監(jiān)聽端口號(hào)
server.listen(3000, function() {
    console.log('服務(wù)啟動(dòng)成功');
});

在此處出現(xiàn)的問題是request事件的請(qǐng)求每次刷新頁(yè)面會(huì)輸出兩次辉哥,證明會(huì)請(qǐng)求2次在谷歌瀏覽器處是這個(gè)情況;谷歌中的2次請(qǐng)求為:1次頁(yè)面的請(qǐng)求攒射,1次favicon.ico醋旦;打開瀏覽器的調(diào)試Network會(huì)看到2次網(wǎng)絡(luò)的請(qǐng)求;減少favicon.ico的方法:事件監(jiān)聽的回調(diào)函數(shù)的rep的參數(shù)会放,具有url屬性(rep.url)會(huì)記錄此次瀏覽器的請(qǐng)求路徑饲齐,加入下邊的代碼就可以避免:

//判斷請(qǐng)求路徑
if(req.url == '/favicon.ico') return;

http資源請(qǐng)求靜態(tài)資源的問題

靜態(tài)資源包括img和script的src,link的href都會(huì)觸發(fā)后臺(tái)的respond事件監(jiān)聽的觸發(fā)咧最,發(fā)生請(qǐng)求:看代碼

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title></title>
        <!--這里會(huì)對(duì)后臺(tái)發(fā)生請(qǐng)求-->
        <link rel="stylesheet" type="text/css" href="../assets/css/style.css"/>
    </head>
    <body>
        <h1>主頁(yè)</h1>
        <!--這里也會(huì)發(fā)生請(qǐng)求-->
        <script src="../assets/js/01.js"></script>
    </body>
</html>

上邊的代碼捂人,css和js都是存儲(chǔ)在服務(wù)器端的靜態(tài)資源的代碼,請(qǐng)求的地址/assets/這個(gè)文件夾服務(wù)端的代碼可以改寫為:

var http = require('http');
var fs = require('fs');
var server = http.createServer(function(rsp, res) {
    var url = rsp.url;
    if(url == '/favicon.ico') return;
    if(url.indexOf('assets') != -1) {
        console.log(url);
        //不等于-1證明要請(qǐng)求靜態(tài)的資源
        url = '../' + url
        fs.readFile(url, function(err, data) {
            if(err) throw err;
            res.end(data);
        });
    } else {
        url = url.substr(1) ? url.substr(1) : 'index';
        fs.readFile('./../view/' + url + '.html', function(err, data) {
            if(err) throw err;
            res.end(data);
        });
    }

});
server.listen(3000, function() {
    console.log('running.....')
})

此段服務(wù)器端的代碼需要相應(yīng)的目錄結(jié)構(gòu)配合

image.png
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末矢沿,一起剝皮案震驚了整個(gè)濱河市滥搭,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌捣鲸,老刑警劉巖瑟匆,帶你破解...
    沈念sama閱讀 211,743評(píng)論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異栽惶,居然都是意外死亡愁溜,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,296評(píng)論 3 385
  • 文/潘曉璐 我一進(jìn)店門外厂,熙熙樓的掌柜王于貴愁眉苦臉地迎上來冕象,“玉大人,你說我怎么就攤上這事汁蝶〗グ纾” “怎么了?”我有些...
    開封第一講書人閱讀 157,285評(píng)論 0 348
  • 文/不壞的土叔 我叫張陵掖棉,是天一觀的道長(zhǎng)席爽。 經(jīng)常有香客問我,道長(zhǎng)啊片,這世上最難降的妖魔是什么只锻? 我笑而不...
    開封第一講書人閱讀 56,485評(píng)論 1 283
  • 正文 為了忘掉前任,我火速辦了婚禮紫谷,結(jié)果婚禮上齐饮,老公的妹妹穿的比我還像新娘捐寥。我一直安慰自己,他們只是感情好祖驱,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,581評(píng)論 6 386
  • 文/花漫 我一把揭開白布握恳。 她就那樣靜靜地躺著,像睡著了一般捺僻。 火紅的嫁衣襯著肌膚如雪乡洼。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,821評(píng)論 1 290
  • 那天匕坯,我揣著相機(jī)與錄音束昵,去河邊找鬼。 笑死葛峻,一個(gè)胖子當(dāng)著我的面吹牛锹雏,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播术奖,決...
    沈念sama閱讀 38,960評(píng)論 3 408
  • 文/蒼蘭香墨 我猛地睜開眼礁遵,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來了采记?” 一聲冷哼從身側(cè)響起佣耐,我...
    開封第一講書人閱讀 37,719評(píng)論 0 266
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎唧龄,沒想到半個(gè)月后晰赞,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,186評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡选侨,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,516評(píng)論 2 327
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了然走。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片援制。...
    茶點(diǎn)故事閱讀 38,650評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖芍瑞,靈堂內(nèi)的尸體忽然破棺而出晨仑,到底是詐尸還是另有隱情,我是刑警寧澤拆檬,帶...
    沈念sama閱讀 34,329評(píng)論 4 330
  • 正文 年R本政府宣布洪己,位于F島的核電站,受9級(jí)特大地震影響竟贯,放射性物質(zhì)發(fā)生泄漏答捕。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,936評(píng)論 3 313
  • 文/蒙蒙 一屑那、第九天 我趴在偏房一處隱蔽的房頂上張望拱镐。 院中可真熱鬧艘款,春花似錦、人聲如沸沃琅。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,757評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)益眉。三九已至晌柬,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間郭脂,已是汗流浹背年碘。 一陣腳步聲響...
    開封第一講書人閱讀 31,991評(píng)論 1 266
  • 我被黑心中介騙來泰國(guó)打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留朱庆,地道東北人盛泡。 一個(gè)月前我還...
    沈念sama閱讀 46,370評(píng)論 2 360
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像娱颊,于是被迫代替她去往敵國(guó)和親傲诵。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,527評(píng)論 2 349

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