0

Feathers/Vue スタックを使用して Mongoose のクエリで検証を使用するにはどうすればよいですか? これが私が経験していることです。Feathers-Mongoose サービスに渡されるクエリ条件は、名前プロパティを持たない、またはフィールドをまったく持たない返されたアイテムを除外するクエリを実行するために、Vue モデルに渡す必要があります。動かない時はこんな感じです。「真」の結果に注意してください。ここに画像の説明を入力

  var vm = new Vue({
  el: '#app',
  data () {
      return {
          places:[]
      }
  },
  ready () {
        // Find all places
        placeService.find({
            query: {
               ** name: { $exists: true } **
            }
        }).then(page => {
          this.places = page.data
        })
    }
})

これをサービスの「オプション」に追加すると、クエリは index.html の {{ i.name }} に「true」が表示されたアイテムを表示することになります。これはサービス設定です:

module.exports = function() {
  const app = this;

  const options = {
    Model: place,
    paginate: {
      default: 15,
      max: 30
    },
    // query: {
    //     name: { $exists: true },
    //     city: { $exists: true }
    // }
  };

  // Initialize our service with any options it requires
  app.use('/places', service(options));

ビューモデルからの検証に組み込まれたフェザーを使用しようとすると、別の注意が必要です

$select: { name: { $exists: true }}

以下に示すように、または追加することにより

{$exists:true}

マングース モデルに対して、フェザー - マングース オプションで実行した場合と同じ結果が得られます。

ready () {
       // Find all places
       placeService.find({
           query: {
               $select: { name: { $exists: true }}
           }
       }).then(page => {
         this.places = page.data
       })
   }

ありがとうございました。

4

1 に答える 1

0

http://mongoosejs.com/docs/api.html#schema_string_SchemaString-minlengthに従って、minlength:1 パラメータを mongoose スキーマに追加することで、この問題を修正しました。

const placeSchema = new Schema({
    name: {
      type: { String, minlength: 1},
      required: true
    }
  }); 

これが最適かどうかを知りたいです。ありがとう

于 2016-08-17T13:21:45.787 に答える