express框架

Express 是一個(gè)基于 Node.js 封裝的上層服務(wù)框架,它提供了更簡(jiǎn)潔的 API 更實(shí)用的新功能化借。它通過(guò)中間件和路由讓程序的組織管理變的更加容易。

如果需要跟加進(jìn)一步的了解建議去 express官網(wǎng)看捡多。沒(méi)時(shí)間寫(xiě)那么詳細(xì)蓖康,我只是把自己之前學(xué)習(xí)的一些筆記簡(jiǎn)單記錄下來(lái),如果有問(wèn)題可以找我探討垒手。
使用:

1.下載 安裝 npm install express --save
2.引入
3.創(chuàng)建一個(gè)server
4.監(jiān)聽(tīng)
5.get(二級(jí)-三級(jí)蒜焊。。科贬。地址,function(req,res){})
.post(二級(jí)-三級(jí)泳梆。。榜掌。地址,function(req,res){})
.use(二級(jí)-三級(jí),function(req,res){});
require('url');
on('data');
on('end')

中間件

作用是拓展功能优妙、處理數(shù)據(jù)(便捷)

const express = require('express');
const server = express();

server.listen(1273);
server.use(function(req,res,next){
    console.log('你好我是user01');
    next();
});
server.use(function(req,res,){
  console.log('你好我是user02');
})

上面是運(yùn)行結(jié)果是:你好我是user01 --> 你好我是user02

因?yàn)槭褂昧? next() ,這個(gè)中間件。

在express中 GET唐责、POST的參數(shù)解析等也是可以使用方便的第三方的處理(上篇說(shuō)到ajax的封裝中就講過(guò)了怎么實(shí)現(xiàn)和封裝)。

express-static 讀取輸出

var express = require('express');
var bodyParser = require('body-parser');//解析body瘾带,尤其是復(fù)雜的對(duì)象參數(shù)
var static = require('express-static'); // 中間件(托管靜態(tài)文件)
var server = express();

server.listen(1767);
server.use(bodyParser.urlencoded({}));
server.use('/user',function(req,res,next){

    console.log(req.body);
        // body 是POST請(qǐng)求
    if(req.body.user == 'Anny' && req.body.pass =='123456'){
        res.send('ok')
    }
    else{
        res.send('no ok!');
    }
    //res.send({a:10});
    //next();
});

server.use(static('./www')); // www目錄下的圖片鼠哥、CSS 文件熟菲、JavaScript 文件對(duì)外開(kāi)放訪問(wèn)了

如果wwww 文件里面有文件就可以直接讀取出來(lái)。

  • next();
    表示朴恳,如果下面還有其它的中間件抄罕,就執(zhí)行,否則就不執(zhí)行于颖。
app.use('',function (res,req) {
    console.log("我是user01");
    //next(); // 如果不使用next呆贿,返回的結(jié)果是 : 我是user01
});
app.use('',function (res,req) {
    console.log("我是user02");
})森渐;

如果使用了 next() 做入。輸出是:我是user01 我是user02

如果是get的數(shù)據(jù),直接使用 req.query 解析就OK了同衣。

默認(rèn)解析了竟块,直接使用。
  • 插件 body-parser ,解析body參數(shù)
const express = require('express');
const bodyParser = require('body-parser');
const static = require('express-static');
const multer = require('multer');// 專(zhuān)門(mén)用來(lái)解析上傳文件的
const server = express();

server.listen(3000);
server.use(bodyParser.urlencoded({})); // 通中間件耐齐,解析body參數(shù)
server.use(multer({dest:'地址值'}).any()); // 可以上傳任意的文件
  • multer 專(zhuān)門(mén)用來(lái)解析上傳文件的(需要添加條件)
    multer的 dest 默認(rèn)解析出來(lái)是哈希值浪秘,沒(méi)有后綴。
    需要 使用中間件 path 解析埠况。path.parse() 解析返回的是一個(gè)對(duì)象(文件名和后綴都有)

{root:'/',dir:'' ,base:'xxx.docx', ext: '.docx', name:''}
{root是 在什么根目錄耸携,dir是 絕對(duì)路徑 ,base是 文件名+后綴辕翰,ext是 后綴夺衍,name是 什么文件名}

server.use('/user',function(req,res,next){
    console.log(req.body); //查看解析后的body參數(shù)
    if(req.body.user == 'xiaoming' && req.body.pass =='123456'){
        res.send('ok')
    }
    else{
        res.send('no ok!');
    }
    //res.send({a:10});
    //res.write();
    //res.end();
    //next();
});
server.use(static('./www')); // 能改變文件地址
  • express-static
    能改變文件地址
    利用中間件
    如果有這個(gè)文件就讀出來(lái)顯示 www

  • res.end();響應(yīng)

var express = require('express');
var app = express();

// 一個(gè)簡(jiǎn)單的 logger
app.use(function(req, res, next){
  console.log('%s %s', req.method, req.url);
  next();
});

// 響應(yīng)
app.use(function(req, res, next){
  res.send('Hello World');
});

app.listen(3000);
  • router 路由
    路由使用非常頻繁,它的作用就是幫助大家把目錄結(jié)構(gòu)分的更加的詳細(xì)金蜀。下面舉個(gè)例子:
const express = require('express');

// 初始化
const userRouter = express.Router();
const newsRouter = express.Router();

const app = express();
app.listen(3000);

app.use('/user',userRouter); // 這里 "/user" 表示把大模塊拆分成小模塊了刷后。
app.use('/news',newsRouter);

// 小服務(wù)
userRouter.use('/xiaoming',function(req,res){
  res.send('user 小明!')
})
userRouter.use('/test',function(req,res){
  res.send('哈哈哈渊抄,測(cè)試test尝胆!')
})
newsRouter.use('/newsTest',function(req,res){
  res.send('渲染新聞')
})

// 這是沒(méi)有拆分模塊化的做法,不推薦
//app.use('www.baidu.com/news/xxxx',function(){});
//app.use('www.baidu.com/list/xxxx',function(){});
//app.use('www.baidu.com/users/xxxx',function(){});
...

在瀏覽器輸入的基礎(chǔ)路徑+/user/xiaoming -----> 結(jié)果是: “user 小明护桦!”
在瀏覽器輸入的基礎(chǔ)路徑+/user/test -----> 結(jié)果是: “哈哈哈含衔,測(cè)試test!”

下篇:cookie及cookie加密

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末二庵,一起剝皮案震驚了整個(gè)濱河市贪染,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌催享,老刑警劉巖杭隙,帶你破解...
    沈念sama閱讀 206,482評(píng)論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異因妙,居然都是意外死亡痰憎,警方通過(guò)查閱死者的電腦和手機(jī)票髓,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,377評(píng)論 2 382
  • 文/潘曉璐 我一進(jìn)店門(mén),熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)铣耘,“玉大人洽沟,你說(shuō)我怎么就攤上這事∥舷福” “怎么了裆操?”我有些...
    開(kāi)封第一講書(shū)人閱讀 152,762評(píng)論 0 342
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)炉媒。 經(jīng)常有香客問(wèn)我踪区,道長(zhǎng),這世上最難降的妖魔是什么橱野? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 55,273評(píng)論 1 279
  • 正文 為了忘掉前任朽缴,我火速辦了婚禮,結(jié)果婚禮上水援,老公的妹妹穿的比我還像新娘密强。我一直安慰自己,他們只是感情好蜗元,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,289評(píng)論 5 373
  • 文/花漫 我一把揭開(kāi)白布或渤。 她就那樣靜靜地躺著,像睡著了一般奕扣。 火紅的嫁衣襯著肌膚如雪薪鹦。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 49,046評(píng)論 1 285
  • 那天惯豆,我揣著相機(jī)與錄音池磁,去河邊找鬼。 笑死楷兽,一個(gè)胖子當(dāng)著我的面吹牛地熄,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播芯杀,決...
    沈念sama閱讀 38,351評(píng)論 3 400
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼端考,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了揭厚?” 一聲冷哼從身側(cè)響起却特,我...
    開(kāi)封第一講書(shū)人閱讀 36,988評(píng)論 0 259
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎筛圆,沒(méi)想到半個(gè)月后裂明,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 43,476評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡太援,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,948評(píng)論 2 324
  • 正文 我和宋清朗相戀三年闽晦,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了轰绵。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,064評(píng)論 1 333
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡尼荆,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出唧垦,到底是詐尸還是另有隱情捅儒,我是刑警寧澤,帶...
    沈念sama閱讀 33,712評(píng)論 4 323
  • 正文 年R本政府宣布振亮,位于F島的核電站巧还,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏坊秸。R本人自食惡果不足惜麸祷,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,261評(píng)論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望褒搔。 院中可真熱鬧阶牍,春花似錦、人聲如沸星瘾。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 30,264評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)琳状。三九已至磕瓷,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間念逞,已是汗流浹背困食。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 31,486評(píng)論 1 262
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留翎承,地道東北人硕盹。 一個(gè)月前我還...
    沈念sama閱讀 45,511評(píng)論 2 354
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像审洞,于是被迫代替她去往敵國(guó)和親莱睁。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,802評(píng)論 2 345

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