學(xué)習(xí)mongo+express搭建博客和原生nodejs

express+mongo搭建博客完成用戶注冊(cè)顿膨、登錄翅雏、登出揣云,發(fā)表文章棘脐,上傳圖片等功能
保存登錄狀態(tài):使用express-session中間件來(lái)保存user,req.session.user = user,登出之后直接對(duì)req.session.user設(shè)為null

校驗(yàn)登錄:某些操作比如發(fā)表文章需要在用戶登錄之后才能進(jìn)行斜筐,為了避免用戶沒有登錄直接進(jìn)入相應(yīng)地址進(jìn)行操作,所以在進(jìn)入相應(yīng)地址之前進(jìn)行登錄判斷蛀缝,通過對(duì)req.session.user的判斷然后進(jìn)行跳轉(zhuǎn)到login頁(yè)面或者移交控制權(quán)next()

上傳圖片:引入multer模塊顷链,然后設(shè)置destination輸出路徑和filename 輸出文件名,之后我們使用form表單來(lái)提交inputfile文件屈梁,form屬性中需要加入enctype="multipart/form-data"嗤练,表單中enctype="multipart/form-data"的意思榛了,是設(shè)置表單的MIME編碼。默認(rèn)情況潭苞,這個(gè)編碼格式是application/x-www-form-urlencoded忽冻,不能用于文件上傳;只有使用了multipart/form-data此疹,才能完整的傳遞文件數(shù)據(jù)僧诚,進(jìn)行下面的操作. enctype="multipart/form-data"是上傳二進(jìn)制數(shù)據(jù); form里面的input的值以2進(jìn)制的方式傳過去

文章模塊:Post構(gòu)造函數(shù)屬性為:title,name(用戶名),head(頭像),post(內(nèi)容),存入數(shù)據(jù)庫(kù)的object額外添加time,comments,pv,reprint_info,pv通過查詢時(shí)對(duì)pv數(shù)值+1來(lái)實(shí)現(xiàn),reprint_info轉(zhuǎn)載時(shí)通過設(shè)置reprint_to,reprint_from來(lái)保存文章來(lái)源以及被別人使用情況蝗碎,當(dāng)用戶轉(zhuǎn)載文章時(shí)通過查詢相應(yīng)文章然后以新文章錄入到數(shù)據(jù)庫(kù)中湖笨,并根據(jù)使用者信息和作者信息對(duì)轉(zhuǎn)載文章以及原文的數(shù)據(jù)進(jìn)行更新

https知識(shí):
之前在別人郵箱中看到全站https升級(jí),了解下為什么要升級(jí)到https蹦骑,什么是https
http的不足之處:通信使用明文慈省,內(nèi)容可能會(huì)被竊聽;不驗(yàn)證通信方的身份眠菇,因此有可能遭遇偽裝边败;無(wú)法證明報(bào)文的完整性所以有可能已遭篡改
http+加密+認(rèn)證+完整性保護(hù)=https,https并非是應(yīng)用層的一種新協(xié)議捎废,只是http通信接口部分用ssl和tls協(xié)議代替而已笑窜,通常http直接和tcp通信,當(dāng)使用ssl時(shí)登疗,則演變成先和ssl通信排截,再由ssl和tcp通信了,簡(jiǎn)言之辐益,所謂的https其實(shí)就是身披ssl協(xié)議這層外殼的http

學(xué)習(xí)nodejs:
assert模塊:使用該模塊來(lái)為應(yīng)用編寫單元測(cè)試断傲,對(duì)預(yù)期值與實(shí)際值進(jìn)行比較,可以使用equal和notEqual分別做相等性和不等性智政,相當(dāng)于==和!==认罩,會(huì)進(jìn)行類型轉(zhuǎn)換再比較,如果使用strictEqual就相當(dāng)于===不會(huì)進(jìn)行類型轉(zhuǎn)換续捂,當(dāng)比較object對(duì)象的時(shí)候可以用deepEqual垦垂,

buffer模塊:js中string對(duì)象存儲(chǔ)的是字符串unicode編碼,而我們?cè)诶胣odejs做服務(wù)器開發(fā)的時(shí)候疾忍,http、tcp床三、文件io都是傳輸?shù)淖止?jié)流一罩,所以這里就需要用到buffer,他代表一個(gè)緩沖區(qū)撇簿,存儲(chǔ)二進(jìn)制數(shù)據(jù)聂渊。我們可以對(duì)緩沖區(qū)進(jìn)行讀寫buf.write(),buf.toString(),緩沖區(qū)是有長(zhǎng)度的差购,在創(chuàng)建時(shí)就固定了下來(lái),創(chuàng)建之后不能改變汉嗽。當(dāng)我們要確定字符串在緩沖區(qū)中占的長(zhǎng)度是不能使用string.length欲逃,這是utf8的編碼,一個(gè)字符可能在buffer中占用多個(gè)字節(jié)饼暑。

fs模塊:我們可以通過fs模塊對(duì)文件進(jìn)行各種操作稳析,所有的操作都有異步和同步,而同步可能會(huì)造成io阻塞弓叛。我們可以通過fs.readFile()按照我們需要的編碼格式進(jìn)行讀取文件內(nèi)容彰居,可以使用fs.writeFile將數(shù)據(jù)寫入文件,如果文件原先存在撰筷,則會(huì)將文件替換掉陈惰;如果想在文件尾部添加內(nèi)容可以使用fs.appendFile,同時(shí)我們可以使用fs模塊創(chuàng)建目錄刪除目錄創(chuàng)建文件監(jiān)聽文件等

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市毕籽,隨后出現(xiàn)的幾起案子抬闯,更是在濱河造成了極大的恐慌,老刑警劉巖关筒,帶你破解...
    沈念sama閱讀 219,039評(píng)論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件溶握,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡平委,警方通過查閱死者的電腦和手機(jī)奈虾,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,426評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)廉赔,“玉大人肉微,你說我怎么就攤上這事±” “怎么了碉纳?”我有些...
    開封第一講書人閱讀 165,417評(píng)論 0 356
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)馏艾。 經(jīng)常有香客問我劳曹,道長(zhǎng),這世上最難降的妖魔是什么琅摩? 我笑而不...
    開封第一講書人閱讀 58,868評(píng)論 1 295
  • 正文 為了忘掉前任铁孵,我火速辦了婚禮,結(jié)果婚禮上房资,老公的妹妹穿的比我還像新娘蜕劝。我一直安慰自己,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,892評(píng)論 6 392
  • 文/花漫 我一把揭開白布岖沛。 她就那樣靜靜地躺著暑始,像睡著了一般。 火紅的嫁衣襯著肌膚如雪婴削。 梳的紋絲不亂的頭發(fā)上廊镜,一...
    開封第一講書人閱讀 51,692評(píng)論 1 305
  • 那天,我揣著相機(jī)與錄音唉俗,去河邊找鬼嗤朴。 笑死,一個(gè)胖子當(dāng)著我的面吹牛互躬,可吹牛的內(nèi)容都是我干的播赁。 我是一名探鬼主播,決...
    沈念sama閱讀 40,416評(píng)論 3 419
  • 文/蒼蘭香墨 我猛地睜開眼吼渡,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼容为!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起寺酪,我...
    開封第一講書人閱讀 39,326評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤坎背,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后寄雀,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體得滤,經(jīng)...
    沈念sama閱讀 45,782評(píng)論 1 316
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,957評(píng)論 3 337
  • 正文 我和宋清朗相戀三年盒犹,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了懂更。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,102評(píng)論 1 350
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡急膀,死狀恐怖沮协,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情卓嫂,我是刑警寧澤慷暂,帶...
    沈念sama閱讀 35,790評(píng)論 5 346
  • 正文 年R本政府宣布,位于F島的核電站晨雳,受9級(jí)特大地震影響行瑞,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜餐禁,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,442評(píng)論 3 331
  • 文/蒙蒙 一血久、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧帮非,春花似錦氧吐、人聲如沸绷旗。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,996評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至庄岖,卻和暖如春豁翎,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背隅忿。 一陣腳步聲響...
    開封第一講書人閱讀 33,113評(píng)論 1 272
  • 我被黑心中介騙來(lái)泰國(guó)打工心剥, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人背桐。 一個(gè)月前我還...
    沈念sama閱讀 48,332評(píng)論 3 373
  • 正文 我出身青樓优烧,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親链峭。 傳聞我的和親對(duì)象是個(gè)殘疾皇子畦娄,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,044評(píng)論 2 355

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

  • https://nodejs.org/api/documentation.html 工具模塊 Assert 測(cè)試 ...
    KeKeMars閱讀 6,338評(píng)論 0 6
  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn)弊仪,斷路器熙卡,智...
    卡卡羅2017閱讀 134,661評(píng)論 18 139
  • Node基本 node的最大特性莫過于基于事件驅(qū)動(dòng)的非阻塞I/O模型。 node通過事件驅(qū)動(dòng)的方式處理請(qǐng)求励饵,無(wú)須為...
    AkaTBS閱讀 2,172評(píng)論 0 11
  • Android 自定義View的各種姿勢(shì)1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 172,167評(píng)論 25 707
  • linux資料總章2.1 1.0寫的不好抱歉 但是2.0已經(jīng)改了很多 但是錯(cuò)誤還是無(wú)法避免 以后資料會(huì)慢慢更新 大...
    數(shù)據(jù)革命閱讀 12,168評(píng)論 2 33