javascript - Mean.js 查询变量不起作用

标签 javascript angularjs node.js mongodb mean-stack

我使用 Mean.js 创建博客,我使用 npm 安装它,并创建 CRUD 模块注释来评论每篇文章,并使用 article id 保存一些评论作为引用。我在服务器中创建 api 路由。

  // Comments Routes
 app.route('/api/comments/:articleId').all()
    .get(comments.listbyArticle);

在服务器 Controller 上

    exports.listbyArticle = function(req, res) {

    Comment.find( {article : req.articleId }).sort('-created').populate('user', 'displayName').exec(function(err, comments) {
       if (err) {
         return res.status(400).send({
            message: errorHandler.getErrorMessage(err)
         });
       } else {
         res.jsonp(comments);
       }
     });
   };

但是当导航到这条路线时

http://localhost:3000/api/comments/57550c21612bc90478333017

如果我硬编码('57550c21612bc90478333017')文章ID而不是req.articleId,它会响应除本文ID之外的所有评论。然后响应会向我显示正确的评论.

请解释一下哪里出了问题?

最佳答案

您应该使用 req.params 访问URL中的articleId:

exports.listbyArticle = function(req, res) {
    var articleId = req.params.articleId;
    Comment.find( {article: articleId }).sort('-created')
           .populate('user', 'displayName')
           .exec(function(err, comments) {
                if (err) {
                    return res.status(400).send({
                        message: errorHandler.getErrorMessage(err)
                    });
                } else {
                    res.jsonp(comments);
                }
            });
};

关于javascript - Mean.js 查询变量不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37654450/

相关文章:

javascript - 线性排列算法

javascript - 高级参数使用

javascript - Angular 检查的行数?

javascript - 使用 ng-blur 进行输入验证(如果输入错误则更改背景颜色)

node.js - 在重负载下,连接到 socket.io 的客户端可能会错过第一个带有 node.js 的数据包

javascript - 使用 d3.transition() 更改 CSS

javascript - 如何维护 Web 组件之间的依赖关系而不让其原型(prototype)进入全局命名空间?

javascript - 指令定义语法澄清

node.js - Karma 单元测试

node.js - 通过 XAMPP 托管时允许外部访问 node.js 应用程序