我有一个简单的注释应用程序,它使用户可以通过表单在系统中输入注释,然后将其登录到页面底部的列表中。

我想对其进行修改,以使用户可以在创建评论标题后单击它,并加载该评论附带的相关内容。

我已经在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);
});

09-25 17:18
查看更多