刷新猫鼬后,默认生成的值短网址发生变化

问题描述

我正在使用shortid软件包来缩短我的网址。

当前,用户具有以下网址:https://bucard.co.il/digitalCard/5edd4112eb6ba017d8a4595c(长字符串是_id), 我想这样:https://bucard.co.il/digitalCard/Y2i1_53Vc

因此,我添加了ShortID字段,就像在文档中一样,我在 models / VisitCard.js 中完成了此操作:

const mongoose = require('mongoose');
const shortid = require('shortid');

const VisitCardsSchema = mongoose.Schema({
    ShortID: {
        type: String,default: shortid.generate
    },....
});

module.exports = mongoose.model('VisitCards',VisitCardsSchema);

我在 routes / VisitCard.js 中的获取请求:

// Get a specific visit card
router.get('/:visitCardId',async (req,res) => {
  try {
    let cardShortId = req.params.visitCardId;

    let allVisitCards = await VisitCard.find({}); // That's how I saw that all the values changed after every get request.
    let visitCard = await VisitCard.findOne({ ShortID: cardShortId }); // Never found the card by the short id - even after coping the short id from above,after the next try it changes.

    if (!visitCard) {
      return res.status(404).json({
        message: 'Not existing card.'
      });
    } else {
        return res.status(200).json(visitCard);
    }
  } catch (error) {
    console.log(error);
    return res.status(404).json({
      message: 'Some server issue accured...'
    });
  }
});

现在,问题是在每次刷新浏览器或另一个get请求之后,所有卡的所有ShortID都在更改(再次生成)。相反,我希望短网址在每次重新启动服务器后都不会刷新,并且它将存储在数据库中

如何在每张卡获取其shortID(默认情况下)后将其直接存储在数据库中?

顺便说一句,我可以在每次提交访问卡之后将一些随机字符串存储在其他参数中,但是我已经在服务中使用了用户访问卡。

谢谢!

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)