【问题标题】:How can I set a mongoose schema so that it can be only modified once?如何设置猫鼬模式,使其只能修改一次?
【发布时间】:2021-10-15 15:01:50
【问题描述】:

所以我正在构建这个竞价应用程序,那个特定应用程序的猫鼬模式看起来像这样

const bidSchema = new mongoose.Schema({
    
    name: String,
    price : Number,
    description: String,
    location: String,
    specilization: String,
    image: String,
    highestBidder: {
      highBidderName: String,
      highPrice: Number,
     },
     previousBidders: [{previousName: String , previousPrice: Number}],
     isClosed: {
       type: Boolean,
     }
     
})

在上面的模式中,isClosed 的值将保持为 none,如果该人关闭了投标,我将为该 isClosed 变量设置一个真实值并进行相应的操作。 这里的问题是它的安全部分,就像任何人实际上都可以使用邮递员之类的东西在该表单的编辑字段中发送放置请求, 像

这样的值
isClosed : false

,它正在更新。有什么我可以做的,这样用户只能为其设置 false 值,一旦设置,任何人都不能修改它?

【问题讨论】:

    标签: node.js mongodb express mongoose mongoose-schema


    【解决方案1】:

    有两种方法可以解决这个问题-

    【讨论】:

      【解决方案2】:

      一种可能的解决方案是:从数据库中检索您的出价,如果没有进行更新,请检查 isCloses == true 的值。

      Bid.findOne({ name }, function (err, bid) {
          if(bid.isClosed) {
            console.error('Bid is closed')
          };
      
          bid.save(function (err) {
              if(err) {
                  console.error('ERROR!');
              }
          });
      });
      

      【讨论】:

        猜你喜欢
        • 2017-09-18
        • 2019-11-06
        • 1970-01-01
        • 1970-01-01
        • 2015-05-20
        • 2022-01-13
        • 2014-04-01
        • 1970-01-01
        • 2015-08-10
        相关资源
        最近更新 更多