Express是目前最流行的基于Node.js的Web開發框架,提供各種模塊,可以快速地搭建一個具有完整功能的網站。
Express的上手非常簡單,首先新建一個項目目錄,假定叫做hello-world。
~~~
$ mkdir hello-world
~~~
進入該目錄,新建一個package.json文件,內容如下。
~~~
{
"name": "hello-world",
"description": "hello world test app",
"version": "0.0.1",
"private": true,
"dependencies": {
"express": "4.x"
}
}
~~~
上面代碼定義了項目的名稱、描述、版本等,并且指定需要4.0版本以上的Express。
然后,就可以安裝了。
~~~
$ npm install
~~~
安裝了Express及其依賴的模塊以后,在項目根目錄下,新建一個啟動文件,假定叫做index.js。
~~~
var express = require('express');
var app = express();
app.use(express.static(__dirname + '/public'));
app.listen(8080);
~~~
上面代碼運行之后,訪問`http://localhost:8080`,就會在瀏覽器中打開當前目錄的public子目錄。如果public目錄之中有一個圖片文件my_image.png,那么可以用`http://localhost:8080/my_image.png`訪問該文件。
你也可以在index.js之中,生成動態網頁。
~~~
// index.js
var express = require('express');
var app = express();
app.get('/', function (req, res) {
res.send('Hello world!');
});
app.listen(3000);
~~~
然后,在命令行下運行下面的命令,就可以在瀏覽器中訪問項目網站了。
~~~
$ node index
~~~
默認情況下,網站運行在本機的3000端口,網頁顯示Hello World。
index.js中的`app.get`用于指定不同的訪問路徑所對應的回調函數,這叫做“路由”(routing)。上面代碼只指定了根目錄的回調函數,因此只有一個路由記錄。實際應用中,可能有多個路由記錄。
~~~
// index.js
var express = require('express');
var app = express();
app.get('/', function (req, res) {
res.send('Hello world!');
});
app.get('/customer', function(req, res){
res.send('customer page');
});
app.get('/admin', function(req, res){
res.send('admin page');
});
app.listen(3000);
~~~
這時,最好就把路由放到一個單獨的文件中,比如新建一個routes子目錄。
~~~
// routes/index.js
module.exports = function (app) {
app.get('/', function (req, res) {
res.send('Hello world');
});
app.get('/customer', function(req, res){
res.send('customer page');
});
app.get('/admin', function(req, res){
res.send('admin page');
});
};
~~~
然后,原來的index.js就變成下面這樣。
~~~
// index.js
var express = require('express');
var app = express();
var routes = require('./routes')(app);
app.listen(3000);
~~~
- 1. 概述
- 1.1 搭建HTTPs服務器
- 2. 運行原理
- 2.1 底層:http模塊
- 2.2 對http模塊的再包裝
- 2.3 什么是中間件
- 2.4 use方法
- 3. Express的方法
- 3.1 all方法和HTTP動詞方法
- 3.2 set方法
- 3.3 response對象
- 3.4 requst對象
- 4. 項目開發實例
- 4.1 編寫啟動腳本
- 4.2 配置路由
- 4.3 靜態網頁模板
- 5. 動態網頁模板
- 5.1 安裝模板引擎
- 5.2 新建數據腳本
- 5.3 新建網頁模板
- 5.4 渲染模板
- 5.5 指定靜態文件目錄
- 6. ExpressJS 4.0的Router用法
- 6.1 基本用法
- 6.2 router.route方法
- 6.3 router中間件
- 6.4 對路徑參數的處理
- 7. 上傳文件
- 8. 參考鏈接