最近也在學(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):
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/login 與 http://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ù)更新蔬捷,多多指教