Meteor SimpleSchema/Collection2插入异常
我正在尝试获取一个文本字段,以便在我的集合中插入字符串。我得到了这个错误:Meteor SimpleSchema/Collection2插入异常,meteor,simple-schema,meteor-collection2,Meteor,Simple Schema,Meteor Collection2,我正在尝试获取一个文本字段,以便在我的集合中插入字符串。我得到了这个错误: Exception while invoking method 'categories.insert' TypeError: func is not a function at /var/www/node/lover/node_modules/simpl-schema/dist/doValidation.js:359:18 at Array.forEach (native) at doVal
Exception while invoking method 'categories.insert' TypeError: func is not a function
at /var/www/node/lover/node_modules/simpl-schema/dist/doValidation.js:359:18
at Array.forEach (native)
at doValidation (/var/www/node/lover/node_modules/simpl-schema/dist/doValidation.js:358:17)
at ValidationContext.validate (/var/www/node/lover/node_modules/simpl-schema/dist/ValidationContext.js:217:57)
at [object Object].doValidate (packages/aldeed:collection2-core/collection2.js:399:33)
at [object Object].Mongo.Collection.(anonymous function) [as insert] (packages/aldeed:collection2-core/collection2.js:187:25)
at [object Object].Meteor.methods.categories.insert (server/methods.js:14:21)
at maybeAuditArgumentChecks (packages/ddp-server/livedata_server.js:1737:12)
at packages/ddp-server/livedata_server.js:719:19
at [object Object]._.extend.withValue (packages/meteor.js:1122:17)
这是我的模式:
import { Mongo } from 'meteor/mongo';
var Categories = new Mongo.Collection('categories');
const CategorySchema = new SimpleSchema({
title: {
type: String,
label: "Title",
max: 255,
optional: true
},
created: {
type: Date,
label: "Date Category Created",
autoValue: () => {
if(this.isInsert){
return new Date();
}
}
},
updated: {
type: Date,
label: "Date Category Modified",
autoValue: () => {
if(this.isUpdate){
return new Date();
}
}
}
});
Categories.attachSchema(CategorySchema);
export default Categories;
要调用的方法:
import { check } from 'meteor/check';
import { Categories, Elections, Nominees, Users, Votes } from '../collections';
Meteor.methods({
'categories.insert'(title){
check(title, String);
return Categories.insert({title: title});
}
});
然后我称之为:
...
Template.settings.events({
'click #newCategoryButton'(e){
let title = $("#newCategoryInput").val();
Meteor.call('categories.insert', title, (error, response) => {});
}
});
...
如果我在insert语句中添加{validate:false}
,我就可以让它工作,这让我相信这是一个验证问题。我浏览了所有的文档、一些博客和tut,但找不到关于如何在使用collection2
和simple schema
时将数据插入我的集合的任何说明(如果不是标准方式)。事实上,如果在上滚动几行,插入调用的显示形式基本上与我编写的相同
我不想通过insert调用传递{validate:false}
,因为它首先破坏了向集合中添加架构的目的
迫切需要帮助,我在这件事上坚持了好几个小时