講個故事,給你一份詳細(xì)的技術(shù)書

序言

經(jīng)常有產(chǎn)品新人問我技術(shù)問題饮戳。像是前后端的區(qū)別豪治?數(shù)據(jù)庫是怎么樣的?如何和研發(fā)溝通扯罐?
?? 回答的多了负拟,就想系統(tǒng)化的回答,寫一本書歹河,讓技術(shù)變得通俗易懂掩浙、有趣。
?? 6年間秸歧,從技術(shù)小白=>工程師=>后臺厨姚、數(shù)據(jù)產(chǎn)品經(jīng)理,2000多個日夜键菱,為代碼谬墙、需求絞盡腦汁、也在創(chuàng)業(yè)路上走過纱耻,百感交集芭梯。
??本書以小說故事的形式、場景化講解技術(shù)弄喘,讓枯燥的技術(shù)變得有趣玖喘。

感謝一些幫助我的小伙伴,謝謝蘑志。另提下里面的人物用的是臉萌設(shè)計的累奈,侵刪(設(shè)計師正在設(shè)計人物)

封面

故事背景

故事也很簡單,兩條主線急但,李大仁來深圳的創(chuàng)業(yè)故事澎媒,表妹小奈和小明的愛情故事。

  1. 小明和小奈戀愛波桩,程序員和產(chǎn)品經(jīng)理的愛情故事

  2. 大仁用戶量破億戒努,一番挫折后破土而出,創(chuàng)業(yè)進(jìn)入新階段镐躲,拿到了B輪融資

人物關(guān)系

課程目錄

總共有13章储玫,50多小篇侍筛。

image.png

1、李大仁來深創(chuàng)業(yè)-互聯(lián)網(wǎng)介紹

離開廣州

“故事的小黃花 從出生那年就飄著 童年的蕩秋千 隨記憶一直......“撒穷。

李大仁聽著歌匣椰,望著廣州,這座生活了快10年的城市端礼。腦中閃過了大學(xué)生活禽笑、同事、前女友蛤奥,百感交集佳镜。但是為了最初的夢想,來到深圳創(chuàng)業(yè)喻括。

來深創(chuàng)業(yè)

“各位乘客你好邀杏,列車已到站“贫奠。
??終于邁出了這一步唬血,深圳或許是創(chuàng)業(yè)氛圍最好的地方了。
小奈:喂唤崭,表哥你在哪拷恨?
大仁:我在深圳北站。
??剛到深圳谢肾,大仁決定投靠表妹那邊腕侄,表妹家里在南山,離投資人提供的孵化器也很近芦疏。
??大仁目前暫時住在表妹這邊冕杠。小奈今年剛畢業(yè),在一家大公司里當(dāng)產(chǎn)品助理酸茴,非技術(shù)專業(yè)分预、初入職場的她遇到了挺多阻礙。
??2018年薪捍,大仁今年也30歲了笼痹。
小奈:表哥,你女朋友呢酪穿?
大仁:分了凳干,她不同意我來深圳這邊創(chuàng)業(yè)。

暫定吧

落腳

小奈:表哥被济,你睡這間房吧救赐。
大仁:好的。

互聯(lián)網(wǎng)

疲累了一天只磷,躺在床上经磅,大仁陷入了沉思...
??互聯(lián)網(wǎng)少欺,是網(wǎng)絡(luò)與網(wǎng)絡(luò)之間所串連成的全球網(wǎng)絡(luò),這里的網(wǎng)絡(luò)可以理解成一個或多個電腦馋贤,這些網(wǎng)絡(luò)以一組標(biāo)準(zhǔn)的網(wǎng)絡(luò)TCP/IP協(xié)議族相連赞别,互聯(lián)網(wǎng)在信息層面把世界變成地球村。
??互聯(lián)網(wǎng)互通是全球性的配乓,是屬于全人類的仿滔。互聯(lián)網(wǎng)低成本的犹芹、高效信息交流深受大家歡迎崎页。它是是平等的,開放的信息高速公路腰埂,是人類發(fā)展進(jìn)程的一個里程碑飒焦。

中國電商發(fā)展史

下圖以中國互聯(lián)網(wǎng)、電商發(fā)展史為例子屿笼。

三巨頭BAT牺荠,崛起的TMD

中國互聯(lián)網(wǎng)發(fā)展了20年,百度(B)阿里(A)騰訊(T)成為中國最大的三家互聯(lián)網(wǎng)公司驴一,形成了三組鼎力的格局休雌,三家公司有各自的體系和地位,百度的搜索肝断、阿里的電商杈曲、騰訊的社交。
??頭條(T)美團(tuán)(M)滴滴(D)胸懈,TMD被稱為創(chuàng)業(yè)公司在BAT這樣巨頭下最大的成長界限担扑,互聯(lián)網(wǎng)也有階層固化之勢。

商戰(zhàn)&混戰(zhàn)

自2016起趣钱,阿里和騰訊的新零售之戰(zhàn)開始布局, 什么是新零售涌献?馬云口中的新零售是什么?
美團(tuán)推出打車羔挡、收購摩拜洁奈,商戰(zhàn):美團(tuán)打車vs滴滴外賣
阿里收購餓了么、高德推出順風(fēng)車绞灼。
創(chuàng)業(yè)環(huán)境如此艱難利术,但總有人能破土而出。

想著想著居然睡著了....


2低矮、服務(wù)員與廚師-前后端的區(qū)別

窗外下起了雨印叁,滴答滴答...
??周末了,本該很開心才對,小奈的心情卻有點(diǎn)郁悶轮蜕。坐在公交上昨悼,想著下午被Leader懟的話,心情十分不美麗跃洛。好不容易下班了率触,還下雨了,得找表哥好好傾訴汇竭。

大仁:喲喲喲葱蝗,你這是怎么啦?
小奈:今天被Leader一頓懟…
大仁:為什么會被Leader懟呢细燎?
小奈:是這樣的两曼,我方案今天上交的時候Leader說很多地方做得不對,前后端都沒分清玻驻,微服務(wù)就更不用說了悼凑。
大仁:不要?dú)怵H,產(chǎn)品上有什么問題你可以問我呀
小奈:前后端怎么區(qū)分璧瞬?后端寫代碼户辫,前端負(fù)責(zé)顯示?

大仁:這個前后端的區(qū)別彪蓬,我畫張圖給你看看就知道了寸莫。

前后端區(qū)別

大仁:前端也要寫代碼的捺萌,后端寫的代碼沒有界面顯示档冬,前端才有。
好比飯店一樣桃纯,服務(wù)員是前端, 廚師是后端開發(fā)酷誓。服務(wù)員會給你端菜(看得到的前端),
但是做菜的是廚師(后端處理數(shù)據(jù)返給前端)态坦。

小奈:那前后端怎么交互盐数?

大仁:你看到那個窗口沒有,服務(wù)員通過窗口拿菜伞梯,菜就是用戶要的數(shù)據(jù)玫氢,窗口就是接口,前后端通過接口來協(xié)作谜诫,接口是后端的工作漾峡。

小奈:哦~那后端是不是做的比較多、比較累一點(diǎn)喻旷。

大仁:是的生逸,廚師累一點(diǎn)。

大仁:不過今時不同往日,現(xiàn)在客人要求高了槽袄。要求服務(wù)員長得漂亮(界面好看) 還要會耍雜技(交互好)烙无。這樣說你可以理解么 ?
小奈:UI和UE有什么不一樣么遍尺?

大仁:視覺設(shè)計(界面設(shè)計)ui像是服務(wù)員的衣服截酷,ue (界面交互)就是點(diǎn)擊這個按鈕怎么跳轉(zhuǎn),ue像是服務(wù)員的上菜流程乾戏、手勢等合搅。
??數(shù)據(jù)庫就是神奇的物料倉庫,廚師要做什么菜歧蕉,需要從倉庫里取灾部, 取得時候會自動復(fù)制了一份,這個數(shù)據(jù)庫以后再和你仔細(xì)講惯退。

小奈:哇赌髓,理解了,表哥好厲害呀催跪。

大仁:總結(jié)起來的話锁蠕,涉及界面展示的屬于前端,當(dāng)請求數(shù)據(jù)的時候懊蒸,就是常見的增刪改查荣倾,屬于后端工作,后端需要提供好這些窗口骑丸,把菜放在那里舌仍,服務(wù)員就可以過去拿。

微服務(wù)vs單體應(yīng)用

小奈:那微服務(wù)又是什么呢通危?
大仁:我再畫2張圖(產(chǎn)品經(jīng)理就是愛畫圖)残邀。

大仁:你們公司是搞電商的跳芳,電商后臺系統(tǒng)比較大而全口柳≡芊ⅲ基本上由用戶管理、商品管理逆害、訂單管理头镊、物流管理、采購管理魄幕、資產(chǎn)管理相艇、內(nèi)容管理等組成。而且項目早期研發(fā)的時候梅垄,都是都所有功能堆在一起厂捞,部署在一臺服務(wù)器上输玷。這種其實就是所謂的“單體應(yīng)用”。

但是呢靡馁,隨著業(yè)務(wù)發(fā)展欲鹏,流量越來越大,這種單體應(yīng)用的弊端就變得明顯了臭墨。
怎么理解呢赔嚎?單體應(yīng)用之間各個模塊互相依賴,如果某個模塊掛了胧弛,就會影響其它模塊尤误。
或者做優(yōu)惠活動的時候,對用戶管理和優(yōu)惠券這些模塊壓力較大结缚,但是做負(fù)載均衡的時候其它模塊也得上损晤,浪費(fèi)資源。

小奈:那怎么辦红竭?

大仁:其實把各個模塊單獨(dú)拎出來就好了尤勋。那里需要強(qiáng)化就強(qiáng)化那里。模塊間依賴性也不會那么大茵宪。

小奈:那前期為什么不直接用微服務(wù)最冰?

大仁:微服務(wù)其實比較花時間,但是各個服務(wù)拆分好后稀火,對后續(xù)擴(kuò)展和性能等的好處多多暖哨。所以很多創(chuàng)業(yè)項目前期都是單體應(yīng)用,大公司除外凰狞。

為了感謝大仁悉心指導(dǎo)篇裁,小奈點(diǎn)了奶茶給大家喝,分奶茶的時候服球,看到大明一手鼠標(biāo)一手鍵盤目不轉(zhuǎn)睛地盯著屏幕茴恰。


2.1 初次見面-瀏覽器輸入url后

小明來了

“叮咚叮咚”

初次見面

大仁:你去接待下我朋友,他叫小明斩熊,我們公司后端開發(fā)。

耳邊突然傳來一個甜美的聲音伐庭。

小奈:你好粉渠,你是小明吧。

小奈:你好圾另,我是小奈霸株,表哥現(xiàn)在在忙,我來招待下你集乔。

小奈:這是給你的茶去件,你先在這邊坐下。

刷地一下從臉到耳根一陣通紅,木住三秒后尤溜,
小明愣了下倔叼,然后雙手接過茶

人物檔案

原名黃小明,29歲宫莱,黑龍江某大學(xué)心理學(xué)專業(yè)丈攒,畢業(yè)后在五道口切過菜,某一天看懂犀牛書授霸,從此進(jìn)入前端巡验,立志成為黑客。大仁公司后端主力開發(fā)碘耳。

小奈:你是做后端的吧显设,我有些技術(shù)問題可以請教你嗎?
小明:可以辛辨,具體是什么問題呢敷硅?

小奈:我想知道你們平時敲的代碼,是怎么變成網(wǎng)頁的愉阎?怎么放到網(wǎng)上去的绞蹦?
小明掏出了雙肩包里面的筆記本

小明:你平時怎么看網(wǎng)頁的?
小奈:在瀏覽器輸入 www.hellojack.com 然后就可以了啊

小明:那你知道背后發(fā)生了什么么榜旦?我畫個圖給你看下幽七。

小明:首先這里幾個家伙:瀏覽器(360之類)、服務(wù)器(阿里云之類)溅呢、域名商(萬網(wǎng)之類)澡屡、網(wǎng)頁文件(index.html)、web環(huán)境盒子(Nginx之類)

小明:當(dāng)你輸入地址的時候咐旧,背后的事情是這樣的驶鹉。

瀏覽器打電話給域名商, hellojack.com 這個sb家地址在哪铣墨?
域名商告訴他ip地址室埋,稍等,我給你轉(zhuǎn)過去伊约。

瀏覽器就把這個地址記到小本本上了姚淆,下次就不用問域名商了。

然后問服務(wù)器要東西了屡律,你盒子里面那個東西呢腌逢?

服務(wù)器掏出盒子里的文件,切成很多小拼塊超埋,好的搏讶,我馬上寄過去佳鳖。
然后順著網(wǎng)線傳過去,傳到瀏覽器這邊媒惕。

瀏覽器就把拼塊憑起來系吩,展示出來了,你好你的文件吓笙。

小奈:每個域名都有IP地址地淑玫,之前我都不曉得IP跟域名有什么聯(lián)系。

小明:1對1的面睛,當(dāng)然你也可以搬家絮蒿。

小奈:好像懂了。

小明:那你看看我們是怎么實現(xiàn)的吧叁鉴。

小明:我們首先就是寫代碼咯土涝。長得像這樣子,

<h1>hello jack</h1>

保存為 index.html 后幌墓,本地打開但壮。
看到?jīng)],長這樣子常侣。
我啟動個神奇的盒子蜡饵,

var express = require('express');
var app = express();
app.set('view engine', 'html');
app.engine('html', require('ejs-mate'));
var server = app.listen(8081, function (req, res) {
console.log("hello world")
})

瀏覽器輸入:localhost:8081
瀏覽器輸入:127.0.0.1:8081

小奈:喔,原來這樣子胳施,那怎么輸入 hellojack.com 來訪問呢溯祸?

小明:對,接下來我要把它部署到阿里云上去舞肆,我之前買的焦辅。
但是域名這個我只買過 pmjishu.com 這個,我得去域名商那里買一下才行椿胯。

小奈:不用啦筷登,我明白了。

小奈:實在太感謝你了哩盲,你好厲害喔前方。

只見小明又通紅著臉

小明:不用客氣,有什么不懂的問題隨時請教”

今晚好美种冬,月亮很好看镣丑。


2.2、小區(qū)與隔板間-機(jī)房和虛擬機(jī)

電腦主機(jī)vs虛擬機(jī)

小奈:一直不太明白娱两,服務(wù)器是一個實體的機(jī)器嗎?(類似一臺主機(jī))還是一個概念上的數(shù)據(jù)庫金吗?本地是指的是十兢?

大仁:第一個問題趣竣,早期服務(wù)器就是一個實體的機(jī)器(物理機(jī)器)。但是虛擬機(jī)技術(shù)成熟后可以在一臺物理機(jī)器上創(chuàng)建很多臺虛擬機(jī)旱物,所以這些虛擬機(jī)也可以作為服務(wù)器遥缕。類似A101和里面的隔板間。

第二個問題宵呛,我們常說的服務(wù)器(后臺)是指后臺程序+數(shù)據(jù)庫单匣,也就是主人+衣柜,衣柜是存儲衣服(數(shù)據(jù))宝穗,主人是收拾户秤、處理衣服的。你有錢可以一個住一間大房子逮矛,沒錢或者覺得太大也可以隔出幾個小板間租給別人鸡号。
目前常見的服務(wù)商是這樣子做的,可能A101這間房間住了不同創(chuàng)業(yè)公司的后臺须鼎。但是房間之間都是隔離的(技術(shù)成熟)鲸伴。

第三個問題,其實我們自己也可以搭建服務(wù)器晋控,要和運(yùn)營商申請公網(wǎng)IP汞窗,一月好幾千,那我們的電腦也就是服務(wù)器了赡译。

云主機(jī)vs機(jī)房

  • 機(jī)房:類似小區(qū)仲吏,由很多服務(wù)器組成
  • 云主機(jī):由多臺服務(wù)器組成,共同處理計算數(shù)據(jù)捶朵。

機(jī)房蜘矢,類似小區(qū),由很多服務(wù)器組成综看。但是可能這些業(yè)主互不相識品腹,也可能這一層住的都是老王家族。

云主機(jī):類似別墅红碑,老王家族住在別墅舞吭,他們之間是有關(guān)系的,一起合作處理一些大事析珊。

3羡鸥、世界之窗門票-賬號與Token

世界之窗

終于周末了,真開心忠寻。
?? 對小奈這種初入職場的人來說惧浴,還是很期待周末的。和表哥約好周末去世界之窗玩奕剃,放松之余衷旅,還要抓緊和表哥學(xué)習(xí)東西捐腿。

賬號和門票一樣

世界之窗外面是開放的,但是如果要進(jìn)去里面的話柿顶,就需要買門票了茄袖。
小奈:這個門票是不是和賬戶密碼一樣?
大仁:是的
小奈:賬號登陸是怎么實現(xiàn)的嘁锯?
大仁:那要先給你簡單講下數(shù)據(jù)庫宪祥。

數(shù)據(jù)庫是什么?

數(shù)據(jù):舉個例子家乘,班級里面的每個人蝗羊,例如小周,他的各個字段:年級烤低,性別肘交、語數(shù)英等等,周杰倫的所有信息算是一條數(shù)據(jù)扑馁。
數(shù)據(jù)表:數(shù)據(jù)表就像一個excel表格涯呻,里面存了3年1班所有學(xué)生的數(shù)據(jù)。

數(shù)據(jù)庫:數(shù)據(jù)庫可以理解成一個文件夾腻要,里面有很多excel表格复罐,例如3年級所有班級(1、2雄家、3班)的excel表格效诅。

賬號密碼

大仁:這里的賬號登陸和門票進(jìn)場一樣,但是稍微不同的是趟济,它是永久性的乱投,只要你不改密碼/不被禁用。

Token則是憑據(jù)

“叮鈴叮鈴”

大仁:喂顷编,小明啊戚炫,你也要來世界之窗么?
小明:是啊媳纬,但是我沒門票双肤,進(jìn)不去啊。
大仁:我記得你是如花酒店會員是吧钮惠?
小明:是啊茅糜。
大仁:他們有和這個酒店合作,你試一下素挽。

小明:你好蔑赘,我是如花酒店的會員,能不能進(jìn)去這里玩下。

檢票員打電話給如花酒店米死,小明和酒店說了自己信息锌历,酒店經(jīng)理給了臨時暗號:0007贮庞,你好可以了峦筒。

Token則更像是臨時暗號,這個臨時暗號是賬號授權(quán)生成的窗慎,門票丟了得重新花錢買物喷,token丟了重新操作下認(rèn)證一個就可以了,因此token丟失的代價是可以忍受的遮斥。

Cookie 和 Session

這個賬號密碼峦失,其實還有兩個重要的概念,下回分解术吗。

3.1 暗號和鑰匙-Cookie和Session的區(qū)別

Cookie和Session的區(qū)別

小奈:表哥那個cookie和session有什么區(qū)別
大仁:記得上次了小明和你講的故事么尉辑?, 在瀏覽器輸入url背后發(fā)現(xiàn)的事较屿。 2.1 初次見面-瀏覽器輸入url后

大仁:上次輸入的網(wǎng)址 www.hellojack.com 隧魄,其實完整的是 http://www.hellojack.com,前面有個http前綴隘蝎,它是一個協(xié)議购啄,無狀態(tài)協(xié)議。

大仁:我來給你講個故事吧嘱么。

http

很久很久以前(30年前狮含,只有靜態(tài)html的時候),有個發(fā)快遞的人叫http曼振。
偶爾有人打電話(無來電顯示)向他買東西几迄,他收到請求后,就會去中心倉庫克隆一份這個東西冰评,然后把貨品塞到管道里映胁,這樣客人就收到了。
那時候工作很輕松集索,小日子過的挺舒服啊屿愚。

好景不常(社區(qū)、電商網(wǎng)站的出現(xiàn))务荆,倉庫里進(jìn)了很多貴重和私密物品妆距。
老板要求他記錄訂購貴重物品的客人,私密物品一定要鑒別客人身份函匕。

暗號:cookie

但是沒有來電顯示啊娱据,鬼知道誰定的,http就很苦惱了盅惜。
想了想中剩,終于想到一個辦法了忌穿。
以后客人打電話過來,我就給他個暗號结啼。
終于可以記錄了掠剑,但是又遇到了一個問題。
由于暗號比較簡單郊愧,其他客人可以偽造朴译。

檔案袋和鑰匙:session和session-id

http想了很久,最后和服務(wù)器協(xié)商属铁,讓服務(wù)器那邊建立檔案袋眠寿,并把鑰匙給客人,下次叫客人把鑰匙給他焦蘑。之后客人都通過鑰匙來打開檔案袋盯拱,確定身份。如果打不開的話就證明錯了例嘱。

我是邪惡的代碼分割線


express 中的 cookie

express 在 4.x 版本之后狡逢,session管理和cookies等許多模塊都不再直接包含在express中,而是需要單獨(dú)添加相應(yīng)模塊蝶防。

var express = require('express');

// 首先引入 cookie-parser 這個模塊

var cookieParser = require('cookie-parser');

var app = express();

app.listen(3000);

// 使用 cookieParser 中間件甚侣,cookieParser(secret, options)

app.use(cookieParser());

app.get('/', function (req, res) {

// 如果請求中的 cookie 存在 isVisit, 則輸出 cookie

// 否則,設(shè)置 cookie 字段 isVisit, 并設(shè)置過期時間為1分鐘

if (req.cookies.jack) {

console.log(req.cookies.jack);

res.send("welcome");

} else {

res.cookie('jack', 'content', {maxAge: 60 * 1000});

res.send("no cookie");

}

});

這里開發(fā)調(diào)試的時候用supervisor來啟動间学,代碼有改動殷费,它會自動重啟,避免不必要的手動重啟工作低葫。

新版本的開發(fā)者工具界面详羡,在application里面可以看到cookies 這些存儲

現(xiàn)在我們看到一個cookie名字為jack 內(nèi)容為content的cookie就存儲了,時間期限也有嘿悬。

如果沒有設(shè)置時間(maxage/expires)实柠,

那就是session cookie,

瀏覽器關(guān)閉的時候cookie就沒了善涨。

session

cookie 雖然很方便窒盐,但是使用 cookie 有一個很大的弊端,cookie 中的所有數(shù)據(jù)在客戶端就可以被修改钢拧,數(shù)據(jù)非常容易被偽造蟹漓,那么一些重要的數(shù)據(jù)就不能存放在 cookie 中了,而且如果 cookie 中數(shù)據(jù)字段太多會影響傳輸效率源内。為了解決這些問題葡粒,就產(chǎn)生了 session,session 中的數(shù)據(jù)是保留在服務(wù)器端的。

session 的運(yùn)作通過一個session_id來進(jìn)行嗽交。session_id通常是存放在客戶端的 cookie 中卿嘲,比如在 express 中,默認(rèn)是connect.sid這個字段夫壁,當(dāng)請求到來時拾枣,服務(wù)端檢查 cookie 中保存的 session_id 并通過這個 session_id 與服務(wù)器端的 session data 關(guān)聯(lián)起來,進(jìn)行數(shù)據(jù)的保存和修改掌唾。

這意思就是說放前,當(dāng)你瀏覽一個網(wǎng)頁時,服務(wù)端隨機(jī)產(chǎn)生一個 1024 比特長的字符串糯彬,然后存在你 cookie 中的connect.sid字段中。當(dāng)你下次訪問時葱她,cookie 會帶有這個字符串撩扒,然后瀏覽器就知道你是上次訪問過的某某某,然后從服務(wù)器的存儲中取出上次記錄在你身上的數(shù)據(jù)吨些。由于字符串是隨機(jī)產(chǎn)生的搓谆,而且位數(shù)足夠多,所以也不擔(dān)心有人能夠偽造豪墅。偽造成功的概率比坐在家里編程時被鄰居家的狗突然闖入并咬死的幾率還低泉手。

session 可以存放在 1)內(nèi)存、2)cookie本身偶器、3)redis 或 memcached 等緩存中斩萌,或者4)數(shù)據(jù)庫中。線上來說屏轰,緩存的方案比較常見颊郎,存數(shù)據(jù)庫的話,查詢效率相比前三者都太低霎苗,不推薦姆吭;cookie session 有安全性問題,下面會提到唁盏。

express 中操作 session 要用到express-session(https://github.com/expressjs/session) 這個模塊内狸,主要的方法就是session(options),其中 options 中包含可選參數(shù)厘擂,主要有:

name: 設(shè)置 cookie 中昆淡,保存 session 的字段名稱,默認(rèn)為connect.sid驴党。

store: session 的存儲方式瘪撇,默認(rèn)存放在內(nèi)存中,也可以使用 redis,mongodb 等倔既。express 生態(tài)中都有相應(yīng)模塊的支持恕曲。

secret: 通過設(shè)置的 secret 字符串,來計算 hash 值并放在 cookie 中渤涌,使產(chǎn)生的 signedCookie 防篡改佩谣。

cookie: 設(shè)置存放 session id 的 cookie 的相關(guān)選項,默認(rèn)為

(default: { path: '/', httpOnly: true, secure: false, maxAge: null })

genid: 產(chǎn)生一個新的 session_id 時实蓬,所使用的函數(shù)茸俭, 默認(rèn)使用uid2這個 npm 包。

rolling: 每個請求都重新設(shè)置一個 cookie安皱,默認(rèn)為 false调鬓。

resave: 即使 session 沒有被修改,也保存 session 值酌伊,默認(rèn)為 true腾窝。

1) 在內(nèi)存中存儲 session

express-session默認(rèn)使用內(nèi)存來存 session,對于開發(fā)調(diào)試來說很方便居砖。

var express = require('express');

// 首先引入 express-session 這個模塊

var session = require('express-session');

var app = express();

app.listen(5000);

app.use(cookieParser('jack2016'));

//解析cookie secret為‘jack2016’的cookie虹脯,可不可以不寫secret?不寫會報錯

}));

// 按照上面的解釋奏候,設(shè)置 session 的可選參數(shù)

app.use(session({

secret:'jack2016',

// 建議使用 128 個字符的隨機(jī)字符串循集,這里不寫secret的話cookie存儲的是不加密的sessionid

name:'jacks',    //cookie名字,這里cookie存的內(nèi)容是用secret加密的sessionid蔗草,

cookie: {maxAge:60*2000}咒彤,//cookie設(shè)置,maxAge設(shè)置時間好像受到限制蕉世,太小直接沒效蔼紧,設(shè)置的夠大無論是60*60還是60*60*24*12好像都是固定的4小時,這里有點(diǎn)疑惑狠轻。

}));

/* GET home page. */

router.get('/',function(req,res,next) {

console.log(req.sessionID,req.cookies.jack,req.signedCookies.jack);

res.render('index',{title:'Express'});

});

關(guān)注我奸例,向我提問

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市向楼,隨后出現(xiàn)的幾起案子查吊,更是在濱河造成了極大的恐慌,老刑警劉巖湖蜕,帶你破解...
    沈念sama閱讀 222,252評論 6 516
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件逻卖,死亡現(xiàn)場離奇詭異,居然都是意外死亡昭抒,警方通過查閱死者的電腦和手機(jī)评也,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,886評論 3 399
  • 文/潘曉璐 我一進(jìn)店門炼杖,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人盗迟,你說我怎么就攤上這事坤邪。” “怎么了罚缕?”我有些...
    開封第一講書人閱讀 168,814評論 0 361
  • 文/不壞的土叔 我叫張陵艇纺,是天一觀的道長。 經(jīng)常有香客問我邮弹,道長黔衡,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 59,869評論 1 299
  • 正文 為了忘掉前任腌乡,我火速辦了婚禮盟劫,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘导饲。我一直安慰自己捞高,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,888評論 6 398
  • 文/花漫 我一把揭開白布渣锦。 她就那樣靜靜地躺著,像睡著了一般氢哮。 火紅的嫁衣襯著肌膚如雪袋毙。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 52,475評論 1 312
  • 那天冗尤,我揣著相機(jī)與錄音听盖,去河邊找鬼。 笑死裂七,一個胖子當(dāng)著我的面吹牛皆看,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播背零,決...
    沈念sama閱讀 41,010評論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼腰吟,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了徙瓶?” 一聲冷哼從身側(cè)響起毛雇,我...
    開封第一講書人閱讀 39,924評論 0 277
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎侦镇,沒想到半個月后灵疮,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,469評論 1 319
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡壳繁,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,552評論 3 342
  • 正文 我和宋清朗相戀三年震捣,在試婚紗的時候發(fā)現(xiàn)自己被綠了荔棉。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,680評論 1 353
  • 序言:一個原本活蹦亂跳的男人離奇死亡蒿赢,死狀恐怖润樱,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情诉植,我是刑警寧澤祥国,帶...
    沈念sama閱讀 36,362評論 5 351
  • 正文 年R本政府宣布,位于F島的核電站晾腔,受9級特大地震影響舌稀,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜灼擂,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,037評論 3 335
  • 文/蒙蒙 一壁查、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧剔应,春花似錦睡腿、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,519評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至纤控,卻和暖如春挂捻,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背船万。 一陣腳步聲響...
    開封第一講書人閱讀 33,621評論 1 274
  • 我被黑心中介騙來泰國打工刻撒, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人耿导。 一個月前我還...
    沈念sama閱讀 49,099評論 3 378
  • 正文 我出身青樓声怔,卻偏偏與公主長得像,于是被迫代替她去往敵國和親舱呻。 傳聞我的和親對象是個殘疾皇子醋火,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,691評論 2 361

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