我创建了一个名为Nodes的集合,并将其定义如下: (位于project / lib中,因此它可以访问客户端和服务器)
Nodes = new Mongo.Collection('nodes');
Nodes.allow({
insert: function (userId, node) {
return !!userId;
}
});
我有一个位于同一文件中的插入方法:
Meteor.methods({
nodeInsert: function(nodeAttributes) {
var node = _.extend(nodeAttributes, {
userId: user._id, author: user.username, submitted: new Date()
});
var nodeIdentity = Nodes.insert(node, function(error,result){
if (error)
console.log(error);
if (result)
console.log(result);
});
}
});
但是,控制台上没有记录错误。
我也在服务器上发布了这个集合: (位于项目/服务器中)
Meteor.publish('nodes', function(){
return Nodes.find();
});
我还在使用insert方法的模板中订阅了这个集合: (位于project / lib中,因此它可以访问客户端和服务器)
Router.route('/workflow',{
waitOn: function () {
return [Meteor.subscribe('uploads'),Meteor.subscribe('nodes')];
},
action: function () {
if (this.ready())
this.render('workflow');
else
this.render('Loading');
}
});
最后,这是我从客户端模板调用nodeInsert函数的方法: (位于项目/客户)
var node = {
title: d.title
};
Meteor.call('nodeInsert', node, function(error, result) {
if (error)
return throwError(error.reason);
});
节点似乎插入到集合中,但是当我使用" show collections"在mongo中的命令,节点集合没有出现。我在插入时也遇到内部服务器错误。这个错误可能是什么原因?