问题描述
我正在使用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 (将#修改为@)