簡體   English   中英

在 node.js 和 Express 中使用 URL 參數

[英]Using URL parameters in node.js and Express

我以前沒有使用節點的經驗。 我正在使用 VS2019 附帶的 Express 項目,嘗試使用 MongoDB 數據源創建主/詳細頁面。 我在 /routes/index.js 中有以下三個路由

//this works
router.get('/articles', function (req, res) {
    var db = req.db;
    var collection = db.get('articles');
    collection.find({}, function (e, docs) {
        res.render('articles', {
            "articles": docs
        });
    });
});

//this doesn't work
router.get('/article/:id', function (req, res) {
    var db = req.db;
    var Id = req.param.id;
    var collection = db.get('articles');
    collection.find({id:Id}, function (e, docs) {
        res.render('articles', {
            "articles": docs
        });
    });
});

//this works    
router.get('/article', function (req, res) {
    var db = req.db;
    var Id = req.query.id;
    var collection = db.get('articles');
    collection.find({id:Id}, function (e, docs) {
        res.render('articles', {
            "articles": docs
        });
    });
});

第一條路線填充工作正常,並給我一個標題列表 url http:localhost/articles 第三個適用於 url,例如http:localhost/article?id=60這是第二個讓我感到困惑的。 我使用 url 之類的http:localhost/article/60 ,我使用req.param.id而不是req.query.id它不會從數據庫中提取任何內容。 我已經查看了關於 SO 和其他地方的大量問題,但我看不出我缺少什么。 我已經嘗試刪除路線 3,以防它干擾路線 2,但它沒有任何區別。 有沒有人有任何想法?

您的代碼中有錯字。 它應該是 req.params.id 而不是 req.param.id

為了結束這個,每個說我需要使用req.params.id而不是req.param.id的人都是正確的,但是還有一個問題,我需要將變量Id設置為 integer 而不是字符串。 parseInt(req.params.id)解決了它

暫無
暫無

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

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