node.js之Express.js牛刀小試

最近也在學(xué)習(xí)node.js,所以特來(lái)分享兢仰,<a >Express</a>是當(dāng)前非常流行的一個(gè)node web框架。利用這個(gè)框架剂碴,我們可以非常方便的建立一個(gè)web站點(diǎn)把将。好吧,那接下來(lái)看看怎么使用這個(gè)框架把忆矛,gogogo~~~
先讓我們開(kāi)始了解一下 express察蹲。首先下載 express:

npm install express --save。

如果電腦被墻了話可以用國(guó)內(nèi)的淘寶鏡像 :

npm install -g cnpm --registry=https://registry.npm.taobao.org

然后就用cnpm代替npm命令了催训,速度可想而知很快的洽议。
然后創(chuàng)建server.js,輸入以下代碼:

var express = require('express');
var app = express();
app.get('/', function(req, res){
    res.send('hello world');
});
app.listen(1337);
console.log('Server running at http://127.0.0.1:1222/');

這樣漫拭,我們就可以訪問(wèn) http://127.0.0.1:1337

除了url路由外亚兄,整個(gè)web服務(wù)實(shí)際上涉及到了很多很多的內(nèi)容,讓我們簡(jiǎn)單的整理一下可能會(huì)涉及到的內(nèi)容:
  • url路由采驻,url參數(shù)讀取审胚,以及表單讀取
  • 對(duì)于不同http方法(GET、POST挑宠、PUT)的分發(fā)
  • 自動(dòng)填寫HTTP頭菲盾,例如Content-Type
  • cookie、session的管理
  • 用戶管理各淀,包括用戶名判重懒鉴、密碼加密和保持登陸
  • 模板渲染,將動(dòng)態(tài)的腳本渲染成瀏覽器可識(shí)別的HTML
  • 靜態(tài)文件服務(wù)
  • 用戶上傳文件
  • 國(guó)際化,創(chuàng)建語(yǔ)言無(wú)關(guān)的站點(diǎn)
  • MVC支持(良好的代碼結(jié)構(gòu)可極大的提高代碼的可讀性和可維護(hù)性)
現(xiàn)在來(lái)新建一個(gè)express項(xiàng)目

1.先安裝這個(gè)東西

npm install express-generator -g

2.建立一個(gè)名叫base的Express項(xiàng)目临谱,并進(jìn)入這個(gè)目錄:

express base
cd base

3.運(yùn)行npm install安裝依賴

4.通過(guò)node ./bin/www來(lái)運(yùn)行我們的項(xiàng)目

5.用瀏覽器即可打開(kāi)我們的應(yīng)用: http://localhost:3000 璃俗。

現(xiàn)在讓我們來(lái)看一下目錄結(jié)構(gòu):

目錄結(jié)構(gòu)圖

app.js中定義并導(dǎo)出了整個(gè)應(yīng)用;

  • /bin/www導(dǎo)入并執(zhí)行了app.js中定義的應(yīng)用悉默,它是一個(gè)入口城豁;
  • node_modules則是我們npm install安裝的依賴所在目錄;
  • package.json定義了我們的應(yīng)用抄课,應(yīng)用也是一個(gè)npm包唱星,有著一系列的依賴;
  • public下存放的是靜態(tài)文件跟磨,這些文件一旦客戶端請(qǐng)求间聊,我們會(huì)原樣地返回(例如客戶端javascript、css)抵拘;
  • routes則是項(xiàng)目最核心的部分哎榴,它拿到HTTP請(qǐng)求并返回HTTP響應(yīng)。它最終被app.js引入僵蛛;
  • views則是視圖模板尚蝌,就是HTML的模板,用來(lái)產(chǎn)生動(dòng)態(tài)頁(yè)面充尉。至于什么是模板飘言,現(xiàn)在可以不去管它。

現(xiàn)在喉酌,在app.js中app.use('',...)之前热凹,加入一個(gè)控制器:

app.get('/hello', function(req, res, next){
     res.send('Hello, Express!');
});

然后重啟服務(wù)器,訪問(wèn) http://localhost:3000/hello 泪电。之后般妙,我們可以看到一行文字:

Hello, Express!

例如,我們網(wǎng)站的一部分邏輯是賬戶的功能:登錄相速、注冊(cè)碟渺、找回密碼等。這些頁(yè)面可以分為一組突诬,作為單獨(dú)的Router引入到app.js中苫拍。這個(gè)Router不妨命名為account.js:
這個(gè)account.js在之前目錄圖片出現(xiàn)過(guò)

// file: routes/account.js
var express = require('express');
var router = express.Router();
router.get('/login', function(req, res){
    return res.send('這里將會(huì)是登陸頁(yè)面');
});
router.get('/register', function(req, res){
    return res.send('這里將會(huì)是注冊(cè)頁(yè)面');
});
// 其他的賬戶控制器
module.exports = router;

最后,在app.js中引用該Router:

app.use("/account", require('./routes/account'));

重啟服務(wù)器旺隙,訪問(wèn) http://localhost:3000/account/loginhttp://localhost:3000/account/register
訪問(wèn)第一個(gè)地址可以看到頁(yè)面會(huì)出現(xiàn):

這里將會(huì)是登陸頁(yè)面

訪問(wèn)第二個(gè)地址可以看到頁(yè)面會(huì)出現(xiàn):

這里將會(huì)是注冊(cè)頁(yè)面

介紹到這里绒极,一個(gè)簡(jiǎn)單地Express框架就簡(jiǎn)單入門了
如果是mac用戶提示沒(méi)有權(quán)限可以在命令前面加入sudo,或者速度比較慢比如:

sudo npm install express --save

以后持續(xù)更新蔬捷,多多指教

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末垄提,一起剝皮案震驚了整個(gè)濱河市榔袋,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌铡俐,老刑警劉巖凰兑,帶你破解...
    沈念sama閱讀 218,525評(píng)論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異审丘,居然都是意外死亡吏够,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,203評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門滩报,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)锅知,“玉大人,你說(shuō)我怎么就攤上這事脓钾『砹” “怎么了?”我有些...
    開(kāi)封第一講書人閱讀 164,862評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵惭笑,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我生真,道長(zhǎng)沉噩,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書人閱讀 58,728評(píng)論 1 294
  • 正文 為了忘掉前任柱蟀,我火速辦了婚禮川蒙,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘长已。我一直安慰自己畜眨,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,743評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布术瓮。 她就那樣靜靜地躺著康聂,像睡著了一般。 火紅的嫁衣襯著肌膚如雪胞四。 梳的紋絲不亂的頭發(fā)上恬汁,一...
    開(kāi)封第一講書人閱讀 51,590評(píng)論 1 305
  • 那天,我揣著相機(jī)與錄音辜伟,去河邊找鬼氓侧。 笑死,一個(gè)胖子當(dāng)著我的面吹牛导狡,可吹牛的內(nèi)容都是我干的约巷。 我是一名探鬼主播,決...
    沈念sama閱讀 40,330評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼旱捧,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼独郎!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書人閱讀 39,244評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤囚聚,失蹤者是張志新(化名)和其女友劉穎靖榕,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體顽铸,經(jīng)...
    沈念sama閱讀 45,693評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡茁计,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,885評(píng)論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了谓松。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片星压。...
    茶點(diǎn)故事閱讀 40,001評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖鬼譬,靈堂內(nèi)的尸體忽然破棺而出娜膘,到底是詐尸還是另有隱情,我是刑警寧澤优质,帶...
    沈念sama閱讀 35,723評(píng)論 5 346
  • 正文 年R本政府宣布竣贪,位于F島的核電站,受9級(jí)特大地震影響巩螃,放射性物質(zhì)發(fā)生泄漏演怎。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,343評(píng)論 3 330
  • 文/蒙蒙 一避乏、第九天 我趴在偏房一處隱蔽的房頂上張望爷耀。 院中可真熱鬧,春花似錦拍皮、人聲如沸歹叮。這莊子的主人今日做“春日...
    開(kāi)封第一講書人閱讀 31,919評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)咆耿。三九已至,卻和暖如春锄贼,著一層夾襖步出監(jiān)牢的瞬間票灰,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書人閱讀 33,042評(píng)論 1 270
  • 我被黑心中介騙來(lái)泰國(guó)打工宅荤, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留屑迂,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,191評(píng)論 3 370
  • 正文 我出身青樓冯键,卻偏偏與公主長(zhǎng)得像惹盼,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子惫确,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,955評(píng)論 2 355

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

  • Express是Node社區(qū)里的超級(jí)明星,他的作者TJ Holowaychuk也因此成為了社區(qū)里大紅大紫的開(kāi)發(fā)者掩蛤。...
    2MuchT閱讀 3,007評(píng)論 1 30
  • 搭建開(kāi)發(fā)環(huán)境并模擬交互數(shù)據(jù) 一枉昏、實(shí)驗(yàn)說(shuō)明 下述介紹為實(shí)驗(yàn)樓默認(rèn)環(huán)境,如果您使用的是定制環(huán)境揍鸟,請(qǐng)修改成您自己的環(huán)境介...
    玄月府的小妖在debug閱讀 2,125評(píng)論 0 15
  • Express 簡(jiǎn)介 Express 是一個(gè)簡(jiǎn)潔而靈活的 node.js Web應(yīng)用框架, 提供了一系列強(qiáng)大特性幫...
    保川閱讀 2,016評(píng)論 0 24
  • 原本今天有很多話想說(shuō)阳藻,突然沒(méi)思路了晰奖。 主要是今天有些喜悅,因?yàn)槲业耐陡灞皇樟诵饶唷F鋵?shí)門檻可能對(duì)我們新進(jìn)入的寫手來(lái)說(shuō)比...
    路路66閱讀 198評(píng)論 0 1
  • 今天蛔外,終于做好了一件事情:忍! 忍蛆楞,再心情不好,都要忍住脾氣夹厌,把自己份內(nèi)的事情做好!工作上的臊岸、自己的,都要忍著脾氣...
    丑妹電影閱讀 171評(píng)論 0 0