Express Router:如何在 Node.js 中使用路由

Express 應用程序利用路由器,這些路由器本質上是一組中間件的容器。 我們可以只將這個中間件持有者放在一個特定的路徑上,這允許我們將我們的邏輯保存在單獨的文件中,並按照我們的條件將它們組合在一起。

高速路由器

Express Router 是一個內置類,它涉及應用程序的端點 (URI) 如何響應客戶端請求。 此外,快速路由器類有助於創建路由處理程序。

您使用與 HTTP 方法對應的 Express 應用程序對象方法定義路由; 例如,app.get() 處理 GET 請求和 app.post 處理 POST 請求。 如需完整列表,請參閱 app.METHOD。

您還可以使用 app.all() 處理所有 HTTP 方法,並使用 app.use() 將中間件指定為回調函數(有關詳細信息,請參閱使用中間件)。

這些路由方法指定當應用程序接收到對指定路由(端點)和 HTTP 方法的請求時調用的回調函數(有時稱為「處理函數」)。

換句話說,應用程序「監聽」與指定路由和方法匹配的請求,當它檢測到匹配時,它調用指定的回調函數。

路由方法可以有多個回調函數作為參數。

對於多個回調函數,重要的是提供 next 作為回調函數的參數,然後在函數體內調用 next() 以將控制權移交給下一個回調。

請參閱基本路由。

// server.js

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

// respond with "hello world" when a GET request is made to the homepage
app.get('/', function (req, res) {
  res.send('hello world')
})

現在,讓我們回到我們的演示項目。

第 1 步:創建一個 express項目。

創建一個項目文件夾並進入該文件夾。

mkdir erouter && cd erouter

現在,使用以下命令初始化 package.json 文件。

npm init -y

從零開始的快速路由器教程示例

現在,使用以下命令安裝 express。

npm install express --save

# or

yarn add express

第二步:讓我們寫第一條快車路線。

現在,在根文件夾中。 創建一個名為 server.js 的文件並添加以下代碼。

// server.js

const express = require("express");
const app = express();
const PORT = process.env.PORT = 3000;

let router = express.Router();

router.get('/',function(req,res){
  res.json({'message' : 'Ping Successfull'});
});

app.use('/api',router);

app.listen(PORT,function(){
  console.log('Server is running at PORT:',PORT);
});

首先,我們已經導入了所有需要的模塊,創建了一個路由器對象,然後定義了根路由。 然後我們使用中間件說,如果任何請求帶有’/api’,它將調用路由函數及其路由。 所以在我們的例子中,我們會得到一個 JSON 響應。

這是我們在 Node.js 平台上使用 express 創建 Web 應用程序時使用的基本路由示例。

快速路由器方法

Express 支持以下主要的路由方式。

  1. 得到
  2. 郵政
  3. 刪除
  4. 選項

還有其他方法,但主要是我們在Web應用程序中使用了上述方法。 此外,還有一個名為 app.all() 的路由方法,它不是從任何 HTTP 方法派生的。

為所有請求方法的指定路徑處的函數載入路由方法。

路線路徑

路由路徑用於定義可以發出請求的端點。 它就像一個後端端點。 在 Express 中,路由路徑可以是字元串模式或正則表達式。

在上面的示例中,路由路徑如下。

// server.js

router.get('/',function(req,res){
  res.json({'message' : 'Ping Successfull'});
});

這裡,路由器路徑是「/」。

路由參數

路由參數捕獲指定到 URL 中特定位置的值。 因此,它們被稱為 URL 段。

獲得的值在 req.params 對象中可用,使用路徑中指定的路由參數的名稱作為值的鍵。

Route 參數在編輯、更新和刪除等功能中非常重要。 因此,我們一般會在參數上傳遞ID,然後從請求中提取出來。 語法是這樣的。

http://localhost:3000/api/user/:id

在 Express Router 中,我們可以使用以下代碼訪問 ID。

http://localhost:3000/api/user/1

在 req.params 中,將提供以下內容:{ 「id」: 「1」 }

因此,我們可以使用以下代碼訪問 1。

req.params.id

快速路由器 POST 請求

特快專遞路線的基本語法如下。

// server.js

router.post('/', function(req, res){
   res.send('It's a post route, grab the data and save in the Mongo');
});

在路由器 post 方法中,我們從 req 中保存數據,然後從 req 中提取該數據並將數據保存在資料庫中。

就像下面的代碼一樣。

router.route('/store').post(function (req, res) {
  let model = new Model(req.body);
  model.save()
    .then(game => {
    res.status(200).json({'model': 'Your data is saved'});
    })
    .catch(err => {
    res.status(400).send("unable to save to database");
    });
});

所以,這裡我們使用了 Mongoose 模型將數據保存在 MongoDB 資料庫中。 這只是一個實時示例,將向您展示如何創建發布請求並將數據保存在資料庫中。

路由器級中間件

路由器級中間件的工作方式與應用級中間件相同,只是它綁定到 express.Router() 的實例。

// server.js

const app = express();
const router = express.Router();

router.use(function (req, res, next) {
  console.log('Time:', Date.now());
  next();
});

router.use('/user/:id', function (req, res, next) {
  console.log('Request URL:', req.originalUrl);
  next();
}, function (req, res, next) {
  console.log('Request Type:', req.method);
  next();
});

這就是本教程的內容。

也可以看看

節點快遞圖片上傳

如何在 express 中使用模板引擎

如何在快遞中提供靜態文件

快速錯誤處理

特快專遞請求

資訊來源:由0x資訊編譯自APPDIVIDEND,版權歸作者Krunal所有,未經許可,不得轉載
你可能還喜歡