我有一个简单的注释应用程序,它使用户可以通过表单在系统中输入注释,然后将其登录到页面底部的列表中。
我想对其进行修改,以使用户可以在创建评论标题后单击它,并加载该评论附带的相关内容。
我已经在app.js中修改了路由以查找:id
:
并且还修改了我的主要Show.js路由,以使用id
作为findOne
命令中的参数来查找注释。
我还输入了console.log()
命令以注销req.params.id
var express = require('express');
var router = express.Router();
var mongoose = require('mongoose');
var Comment = mongoose.model('Comment', Comment);
router.get('/', function(req, res) {
Comment.findOne({ id: req.params.id }, function(err, comment){
console.log(req.params.id)
});
});
module.exports = router;
但是,我得到的只是终端中的
undefined
消息。如果将
console.log()
直接放置在我的app.js中,则会按预期记录ID。app.use('/:id', function(req,res) {
console.log(req.params.id)
});
我在路线中是否遗漏了某些阻止我获取id参数的东西?
最佳答案
您需要在获取路线中指定:id
,如下所示:
// GET /1 -> print 1
router.get('/:id', function(req, res) {
console.log(req.params.id);
});
// GET /foo/1/bar/2 -> print 1, print 2
router.get('/foo/:id1/bar/:id2', function(req, res) {
console.log(req.params.id1);
console.log(req.params.id2);
});