簡體   English   中英

查詢字符串中有多個參數的 Express + 節點路由

[英]Express + Node Route With Multiple Parameters in Query String

我正在 Node 中構建 API,並且正在努力想辦法解決問題。 也就是說,我知道如何構建/api/:paramA/:paramB類型的路由。 在這種情況下,有兩個參數。

代碼將是這樣的:

router.get('/test/:paramA/:paramB', function(req, res) {
    res.json({ message: 'hooray! welcome to our api!' + req.params.paramA + req.params.paramB});   
});

如何構建一條響應/api?paramA=valueA&paramB=valueB

要在 Express 的路由中使用此 URL:

 /api?paramA=valueA&paramB=valueB

你做這個:

router.get('/api', function(req, res) {
    console.log(req.query.paramA);     // valueA
    console.log(req.query.paramB);     // valueB
    console.log(req.query.paramC);     // undefined (doesn't exist)
});

查詢參數被解析為req.query對象 如果查詢字符串中不存在查詢參數名稱,則 query.query 對象上將不存在該屬性,並且嘗試讀取它會返回undefined 請記住,所有值都將是字符串。 如果您希望它們是數字或其他一些數據類型,那么您必須將它們解析為其他類型。

我最終使用了這個。 這段代碼完全符合我在原始問題中的意圖。

router.get('/api', function(req, res) {
    if(typeof req.query.paramA !== 'undefined' && typeof req.query.paramB !== 'undefined') {
    let paramA = req.query.paramA,   
        paramB = req.query.paramB;
    //do something with paramA and paramB
   }
});

在 router 中定義 url 參數更容易。

示例網址: http : //www.example.com/api/users/3&0

router.get('/api/users/:id&:pending', function (req, res) {
  console.log(req.params.id);
  console.log(req.params.pending);
});

如果您確定正在傳遞的 GET 參數,那么您可以輕松地這樣做:

router.get('/api', function(req, res) {
    if(typeof req.params.paramA !== 'undefined' && typeof req.params.paramB !== 'undefined') {
    let paramA = req.params.paramA,   
        paramB = req.params.paramB;
    //do something with paramA and paramB
   }
});

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM