[英]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.