当前位置: 首页 > 知识库问答 >
问题:

平均问题从列表中获取单个:id数据

钱锦
2023-03-14

**我试图从列表中得到一个单一的:id,但它没有返回预期的数据...**

GET/article/5B0BE8829F734A4E580A43C54013.845 ms-99===

我的api===

var express = require('express');
var router = express.Router();
var jwt = require('jsonwebtoken');
var User = require('../models/User')
var Article = require('../models/Article');


router.get('/', function (req, res, next) {
    Article.find()
        .populate('user')
        .exec(function (err, articles) {
            if (err) {
                return res.status(500).json({
                    title: 'An error occured getting articles',
                    error: err
                });
            }
            res.status(200).json({
                message: "Success",
                obj: articles
            });
        });
});

//I'm having issue with this route below
//I'm having issue with this route below

router.get('/article/:articleId', function (req, res, next) {
    // Check if the blog id is found in database
    // var decoded = jwt.decode(req.query.token);
    Article.findById(req.params.articleId, function (err, article) {
            // if the ID is not found or invalid, return err
            if (err) {
                return res.status(500).json({
                    title: 'An error occured',
                    error: err
                });
            }
            // if the article was not found anyways
            if (!article) {
                return res.status(500).json({
                    title: 'Article not found',
                    error: { message: 'Article was not found!' }
                });
            }
                res.status(200).json({
                    message: 'successful :id',
                    obj: article
                });
        });
});



//ROAD-BLOCK => { (checking if you're authenticated(true))}
router.use('/', function (req, res, next) {
    jwt.verify(req.query.token, 'secret', function (err, decoded) {
        if (err) {
            return res.status(401).json({
                title: 'Not Authenticated',
                error: err
            });
        }
        next();
    })
});


router.post('/', function (req, res, next) {
    var decoded = jwt.decode(req.query.token);
    User.findById(decoded.user._id, function (err, user) {
        if (err) {
            return res.sendStatus(500).json({
                title: 'An error occured',
                error: err
            });
        }
        var article = new Article({
            title: req.body.title,
            description: req.body.description,
            body: req.body.body,
            username: user.username,
            userId: user._id,
            favoritesCount: 33,
            articleId: req.body._id 
            // comments: 'bla'
        });

        article.save(function (err, result) {
            if (err) {
                return res.status(500).json({
                    title: 'An error occured when saving',
                    error: err
                });
            }
            user.articles.push(result);
            console.log(result);
            user.save();
            res.status(201).json({
                message: 'Article saved succesfully',
                obj: result
            });
        });
    });
});

// Updating an article // /:id
router.patch('/:id', function (req, res, next) {
    var decoded = jwt.decode(req.query.token);
    Article.findById(req.params.id, function (err, article) {
        if (err) {
            return res.status(500).json({
                title: 'An error occured',
                error: err
            });
        }
        if (!article) {
            return res.status(500).json({
                title: 'Article not found',
                error: { message: 'Article was not found!' }
            });
        }
        if (article.user != decoded.user._id) {
            return res.status(401).json({
                title: 'Not Authenticated',
                error: {
                    message: 'Users do not match'
                }
            });
        }
        article.title = req.body.title,
            article.description = req.body.description,
            article.body = req.body.body,
            article.favoritesCount = 33,
            // article.tags = req.body.tags,
            article.save(function (err, result) {
                if (err) {
                    return res.status(500).json({
                        title: 'An error occured',
                        error: err
                    });
                }
                res.status(200).json({
                    message: 'updated succesfully',
                    obj: result
                });
            });
    });
});

router.delete('/:id', function (req, res, next) {
    var decoded = jwt.decode(req.query.token);
    Article.findById(req.params.id, function (err, article) {
        if (err) {
            return res.status(500).json({
                title: 'An error occured',
                error: err
            });
        }
        if (!article) {
            return res.status(500).json({
                title: 'Article not found',
                error: { message: 'Article was not found!' }
            });
        }
        if (article.user != decoded.user._id) {
            return res.status(401).json({
                title: 'Not Authenticated',
                error: {
                    message: 'Users do not match'
                }
            });
        }
        article.remove(function (err, result) {
            if (err) {
                return res.status(500).json({
                    title: 'An error occured',
                    error: err
                });
            }
            res.status(200).json({
                message: 'deleted succesfully',
                obj: result
            });
        });
    });
})

module.exports = router;

其他路线正在按预期工作...

这是我的服务,连接到我前端的路由api...

  ngOnInit() {
    this.getArticleDetail(this.activatedRoute.snapshot.params['articleId']);
  }

//   ngOnInit() {
//     this.articleService.getArticle(this.article)
//         .subscribe(article => this.article = article);
// }

  getArticleDetail(articleId) {
    this.http.get('/article/' + articleId).subscribe(
      data => {
        this.article = data;
      }
    );
  }

浏览器控制台中的错误响应===

HttpErrorResponse{headers:HttpHeaders,状态:401,状态文本:“未经授权”,url:http://localhost:7777/article/5b0be8829f734a4e580a43c5“,ok:false,…}错误:{title:“Not Authenticated”,错误:{…}头:HttpHeaders{normalizedNames:Map(0),lazyUpdate:null,lazyInit:ƒ}消息:“的Http失败响应”http://localhost:7777/article/5b0be8829f734a4e580a43c5:401 Unauthorized“name:”HttpErrorResponse“ok:错误状态:401 statusText:”Unauthorized“url:”http://localhost:7777/article/5b0be8829f734a4e580a43c5"

共有1个答案

宰父浩漫
2023-03-14

我认为你应该授权获得特定项目的身份证。

router.use('/', function (req, res, next) {
jwt.verify(req.query.token, 'secret', function (err, decoded) {
    if (err) {
        return res.status(401).json({
            title: 'Not Authenticated',
            error: err
        });
    }
    next();
})

});

您有授权中间件,因此每个请求都应该经过授权。

尝试从角服务发送jwt令牌

 类似资料:
  • 问题内容: 我无法获得熊猫列的平均值或均值。有一个数据框。我在下面尝试的任何事情都没有给我该列的平均值 以下返回几个值,而不是一个: 这样: 问题答案: 如果您只想要列的均值,请选择列(这是一个系列),然后调用:

  • 我们的教授在一个文本文件中给了我们一份982个数字的列表,我们已经阅读了文件中的文本,并打印出了一些关于数字的信息。到目前为止,除了奇数的总数之外,我的一切都是正确的(她给了我们正确的答案)。我不知道如何得到奇数的平均值,即48201.56。 我一直得到的结果是97354,这很奇怪,因为我用的方法和所有数字的平均值和偶数的平均值是一样的。 我想知道为什么“总平均数”的答案不是48201.56。谢谢

  • 我的事务表有4列(其他与查询无关) trans_id:整数,pk user_id:整数,fk 金额:双倍 bus_id:整数 我试图通过对列求平均值来获得他们的平均消费金额,但我的回答一直是“找不到”列。 我的迁徙 我路过 它们也都列在我的模型下 但我还是有错误: Illumb\Database\QueryException:SQLSTATE[42S22]:未找到列:“where子句”中的1054

  • 我想从数据帧中获取列标题列表。数据帧将来自用户输入,因此我不知道将有多少列或它们将被调用。 例如,如果我得到这样的DataFrame: 我会得到这样的列表:

  • 问题内容: 我有一个java.util.Date对象数组。我试图找到平均值。 例如,如果我有2个日期对象,分别是7:40 AM和7:50 AM。我应该获得7:45 AM的平均日期对象。 我正在考虑的方法效率低下: 用于遍历所有日期 找出0000与时间之间的时差 将时间差加到总计 除以总数 将该时间转换为日期对象 有更简单的功能可以做到这一点吗? 问题答案: 好的,从根本上讲,您可以将所有对象的“自

  • 我不能得到熊猫的平均值或平均值。有一个数据框。下面我尝试的东西都没有给我列的平均值 以下内容返回多个值,而不是一个值: 这也是: