Express服務端開發框架簡介


Express是服務器的框架,更准確的說:它是一款基於node.js平的開發框架。官網:http://www.expressjs.com.cn/starter/installing.html

類似於它的框架很多,但它可以說是被廣泛應用的第一款服務器開發框架。

express 
koajs
loopback
//以上是同一小組開發 不分好壞 根據項目適配
egg //阿里巴巴開發 基於koajs 國內應用比較廣泛

安裝方式分為兩種:

1. npm install 在node.js平台安裝 安裝后系統自動生成package.json文件

2. 直接寫package.json文件在進行npm install安裝

使用方式:

//開啟服務器 並見監聽9000端口
const express = require('express');

let app = express();
//__dirname 打印當前文件路徑-絕對路徑
    //同類型__filename 打印當前文件路徑-絕對路徑 包含文件名
app.use(express.static(__dirname + '/public'));

app.listen(9000);

Express模塊的get方法--路由 處理以get方式發送且路徑為‘/’的請求

//當且僅當請求為get 方法 且路徑符合時,才會觸發相應的路由--也就是觸發指定路徑的指定方法
var express = require();
var app = express();

app.get('/',function(res,req){
  res.send('Hello world!');
});
app.get('/customer',function(res,req){
  res.send('customer pase');
})
app.get('/admin',function(){
  res.send('admin page');
});

app.listen(3000);

為了頁面更加整潔,可讀性更高,我們會將處理路由的代碼抽離出來

目錄結構:
routes/
index.js
app.js

routes/index.js function(app){ app.get('/',function(res,req){ req.send('hello world!'); }); app.get('/',function(res,req){ req.send('wo shi guile'); }); app.get('/',function(res,req){ req.send('wssjzw') }); } //app.js const express = require('express'); const routes = require('./routes'); let app = express(); routes(app); app.listen(9000);

運行原理

底層:http模塊

Express框架建立在node.js內置的http模塊上。

var http= require('http');

var app = http.createServer(function(request,response){
  response.writeHead(200,{"content-type":"text/plain"});
  response.end("Hello world!");
});

app.listen(3000,"localhost");

Express底層調用了http模塊的createServer方法,表示生成一個HTTP服務器實例,該方法參數是一個回調函數,回調函數的兩個參數分別代表HTTP請求的request對象和HTTP響應的response對象。

const express = require('express');
let app = express();

app.get('/',function(req,res){
  res.send('Hello world!');
});
app.listen(3000);

這樣書寫相比於原生的好處是: 減少了代碼耦合度(代碼與代碼的依賴度)。方便后續修改。

Express模塊的get方法--路由 處理以post方式發送且路徑為‘/’的請求

//對網站首頁的訪問返回 "Hello World!"字樣
app.get('/',function(){
  res.send('Hello World');
});

//網站首頁接受POST請求
app.post('/',function(res,req){
  res.send('Got a POST request');
});

利用Express托管靜態文件

通過Express內置的Express.static可以方便地托管靜態文件,例如圖片、CSS、Javascript文件等。

將靜態資源文件所在目錄作為參數傳遞給express.static中間鍵就可以提供靜態資源文件的訪問。例如,假設在public目錄放置了圖片、CSS和Javascript文件,你就可以:

app.use(express.static('public'));

現在,public目錄下面的文件就可以訪問了。

http://localhost:3000/images/kitten.jpg
http://localhost:3000/css/style.css
http://localhost:3000/js/app.js
http://localhost:3000/images/bg.png
http://localhost:3000/hello.html

所有文件的路徑都是相對存放目錄的,因此,存放靜態文件的目錄名不會出現在URL中。

如果你的靜態資源存放在多個目錄下面,你可以多次調用express.static中間件:

app.use(express.static('public'));
app.use(express.static('files'));

訪問靜態資源文件時,express.static文件件會根據目錄添加的順序查找所需的文件。

如果你希望所通過express.static訪問的文件都存放在一個‘虛擬(virtual)’目錄(即目錄根本不存在)下面,可以通過為靜態資源目錄指定一個掛載路徑的方式來實現,如下所示:

app.use('/static',express.static('public'));

現在你就可以通過帶有“/static”前綴的地址來訪問public目錄下面的文件了。

http://localhost:3000/static/images/kitten.jpg
http://localhost:3000/static/css/style.css
http://localhost:3000/static/js/app.js
http://localhost:3000/static/images/bg.png
http://localhost:3000/static/hello.html

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM