Nodejs中Express框架的基本使用舉例
作為 Node.js 生態(tài)中的主流框架,Express 以其輕量高效的特點廣受開發(fā)者青睞。學習該框架能有效提高編寫效率,簡化代碼結(jié)構(gòu),便于維護等。下面將簡單介紹express框架的使用。
一、Express 框架簡介?
Express 是基于 Node.js 平臺的極簡、靈活的 Web 應用開發(fā)框架,它為 Node.js 提供了一套強大的功能,用于創(chuàng)建 Web 應用程序和 HTTP 服務器。Express 框架的設計理念是盡可能地保持輕量級,同時又具備高度的可擴展性。它不強制特定的代碼結(jié)構(gòu)或開發(fā)模式,開發(fā)者可以根據(jù)項目需求自由選擇合適的工具和方法,這使得 Express 在開發(fā)過程中擁有極高的靈活性。
二、安裝 Express ?
在開始使用 Express 之前,首先需要確保已經(jīng)安裝了 Node.js。Node.js 自帶了包管理工具 npm(Node Package Manager),通過 npm 可以方便地安裝 Express 及其相關(guān)依賴。?
1、初始化項目:在項目目錄下,執(zhí)行npm init -y命令,快速初始化一個package.json文件,該文件用于管理項目的依賴和配置信息。?
npm init -y?
2、安裝 Express:執(zhí)行以下命令安裝 Express:?
npm install express? cnpm install express //這個也可以
3、安裝完成后,在項目目錄下會生成一個node_modules文件夾,里面存放著 Express 及其依賴的包,同時在package.json文件的dependencies字段中會添加express的相關(guān)信息。?
如下圖所示:

三、創(chuàng)建第一個 Express 應用?
安裝好 Express 后,就可以開始創(chuàng)建一個簡單的 Express 應用了。在項目目錄下,創(chuàng)建一個名為app.js(也可以使用其他文件名,我現(xiàn)在習慣用這個了)的文件,編寫以下代碼:?
const express = require('express') //加載express模塊
let app = express(); //創(chuàng)建服務器,相當于 let server = http.createServer();
app.get('/',function(req,res){ //設置請求,當請求路徑為/(?之前的)時發(fā)送響應(用send發(fā)送,類型會自動設置的)
res.send('hello express!!');
})
app.use('/public/',express.static('./public')); //設置靜態(tài)資源獲取,當請求路徑以/public/開頭時,就會獲取開放的public目錄中的所有需要的靜態(tài)資源,會自動設置發(fā)送響應
app.get('/apple',function(req,res){
console.log(req.query); //可以用req.query來獲取請求路徑?之后的參數(shù)對象,注意只能拿到get請求的參數(shù)
res.send('apple');
})
app.listen(3000,function(){ //啟動服務器
console.log('running~~');
})在上述代碼中:?
- 首先通過require('express')引入 Express 模塊,并創(chuàng)建一個 Express 應用實例app。?
- 然后指定服務器監(jiān)聽的端口號為3000。?
- 使用app.get()方法定義了一個路由,該路由處理針對根路徑(/)的GET請求。當客戶端發(fā)送GET請求到根路徑時,服務器會返回Hello, Express!。?
- 最后調(diào)用app.listen()方法啟動服務器,開始監(jiān)聽指定的端口,并在控制臺輸出服務器運行的地址。?
在命令行中,進入項目目錄,執(zhí)行node app.js命令啟動服務器,然后在瀏覽器中訪問http://localhost:3000 或 127.0.0.1:3000,即可看到頁面上顯示Hello, Express!。?
四、路由基礎?
路由是 Express 應用的核心概念之一,它負責定義應用如何響應客戶端發(fā)送的不同請求。路由由請求的 HTTP 方法(如GET、POST、PUT、DELETE等)、請求的 URL 路徑以及處理請求的回調(diào)函數(shù)組成。?
(一)常見的路由方法?
1、app.get():用于處理GET請求,通常用于獲取資源。例如:?
app.get('/users', (req, res) => {?
// 假設這里從數(shù)據(jù)庫獲取用戶列表?
const users = [?
{ id: 1, name: "Alice" },?
{ id: 2, name: "Bob" }?
];?
res.json(users);?
});?上述代碼定義了一個處理/users路徑的GET請求的路由,當客戶端請求該路徑時,服務器會返回一個包含用戶列表的 JSON 數(shù)據(jù)。?
2、app.post():用于處理POST請求,常用于提交數(shù)據(jù),如創(chuàng)建新資源。例如:?
app.post('/users', (req, res) => {?
// 假設這里接收客戶端提交的用戶數(shù)據(jù)并保存到數(shù)據(jù)庫?
const newUser = req.body;?
// 模擬保存用戶數(shù)據(jù)的操作?
console.log('Received new user:', newUser);?
res.status(201).send('User created successfully');?
});?在這個例子中,當客戶端通過POST方法向/users路徑發(fā)送數(shù)據(jù)時,服務器會接收數(shù)據(jù),并在控制臺打印接收到的新用戶信息,然后返回一個表示創(chuàng)建成功的響應。?
3、app.put():用于處理PUT請求,一般用于更新資源。?
4、app.delete():用于處理DELETE請求,用于刪除資源。?
(二)路由參數(shù)?
除了固定的路徑,Express 還支持在路由中使用參數(shù),以便動態(tài)地處理不同的請求。例如:?
app.get('/users/:id', (req, res) => {?
const userId = req.params.id;?
// 假設這里根據(jù)userId從數(shù)據(jù)庫獲取單個用戶?
const user = { id: userId, name: "John" };?
res.json(user);?
});?在上述代碼中,/:id是一個路由參數(shù),id是參數(shù)的名稱。當客戶端請求類似/users/1這樣的路徑時,1會被賦值給req.params.id,服務器可以根據(jù)這個參數(shù)值進行相應的處理。
(三)post請求體的獲取
如果請求時get請求,則可以通過req.query來獲取參數(shù)所組成的對象,進而處理請求,但post的請求體express沒有提供直接獲取請求體的方式,下面使用body-parser第三方包來獲取post請求體。
1、安裝body-parser
npm install body-parser //在控制臺輸入
2、配置body-parser
app.use(bodyParser.urlencoded({extended:false})) //配置在express里面使用body-parser
app.use(bodyParser.json())配置好后可以使用req.body來獲取post請求的請求頭
3、簡單樣例
const bodyParser = require('body-parser') //這里需要引包
const express = require('express')
let app = express();
//配置
app.engine('html',require('express-art-template')) //配置在express里面使用art-template
app.use(bodyParser.urlencoded({extended:false})) //配置在express里面使用body-parser
app.use(bodyParser.json())
//當以post類型發(fā)送/post的請求時使用
app.post('/post',function(req,res){
res.send(req.body) //req的body參數(shù)里面記錄了post請求的請求體
})
//當以get類型發(fā)送/post的請求時使用
app.get('/post',function(req,res){
res.render('demo02.html',{
name:'張*3===張三===三張',
content:'hello world'
})
})
app.listen(3000,function(){
console.log("running...")
})五、在express里面使用art-template模板引擎
(一)安裝和配置
//在express中使用art-template
//安裝 npm install --save art-template express-art-template
//配置 app.engine('html',require('express-art-template'))(二)使用art-template
express-art-template第三方包為nodejs提供了一個render方法,通過response調(diào)用,第一個參數(shù)為views目錄下的視圖(如果使用art-template,要把html模板放到views目錄下),第二個參數(shù)為要傳入的數(shù)據(jù)對象。
示例:
const express = require('express')
let app = express();
//art
app.engine('html',require('express-art-template')) //配置,使在express里面可以使用art-template,第一個參數(shù)表示當以該參數(shù)值為拓展名時會使用art-template模板引擎
app.get('/',function(req,res){ //express為response提供了一個render方法,當使用模板引擎時可以使用,第一個參數(shù)為views目錄里面的模板文件,第二個參數(shù)為要傳遞的對象
res.render('demo01.html',{
name:'張三',
age:18
})
})
app.listen(3000,function(){
console.log('running...')
})代碼文件結(jié)構(gòu):

六、設置靜態(tài)資源
主要代碼如下:
app.use('/public/',express.static('./public')); 意思是當請求路徑以/public/時會默認到./public目錄里面去尋找需要的資源,找到資源后會自動發(fā)送對應的響應,‘/public/’是可以進行更換的,并不是固定值,可以根據(jù)實際需求進行更換。
示例:
const express = require('express');
let app = express();
//app.use('/public/',express.static('./public')); //設置靜態(tài)資源獲取,當請求路徑以/public/開頭時,就會獲取開放的public目錄中的所有需要的靜態(tài)資源(./public/....),會自動設置發(fā)送響應
app.use('/a/',express.static('./public')) //設置靜態(tài)資源,當請求路徑以/a/開頭時,就會獲取開放的public目錄中的所有需要的靜態(tài)資源(./public/....)...為/a/后面的路徑,會自動設置發(fā)送響應
//app.use(express.static('./public')); //設置靜態(tài)資源,和上面的區(qū)別就是發(fā)送的請求路徑里面不能再帶有/public了
app.get('/',function(req,res){
res.send('hello');
})
app.listen(3001,function(){
console.log('running...')
})七、總結(jié)
到此這篇關(guān)于nodejs中Express框架的基本使用的文章就介紹到這了,更多相關(guān)nodejs express使用內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

