如何使用带有Feathers / Vue堆栈的Mongoose中的查询进行验证?这就是我所经历的。传递给feathers-mongoose服务的任何查询术语都必须在Vue模型中传递,以便运行查询,该查询过滤掉没有名称属性或根本没有该字段的返回项目。这是它不起作用时的样子。请注意' true'结果。
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
})
}
})
如果您在服务的“选项”中添加此选项,则查询最终会显示“&true;'显示在index.html中的{{i.name}}中。这个服务设置:
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}
到mongoose模型,你会得到与在羽毛 - 猫鼬选项中运行它相同的结果。
ready () {
// Find all places
placeService.find({
query: {
$select: { name: { $exists: true }}
}
}).then(page => {
this.places = page.data
})
}
谢谢。
答案 0 :(得分:0)
我通过根据http://mongoosejs.com/docs/api.html#schema_string_SchemaString-minlength
向mongoose模式添加minlength:1参数来解决此问题const placeSchema = new Schema({
name: {
type: { String, minlength: 1},
required: true
}
});
我仍然想知道这是否是最佳选择。感谢