我创建了一个名为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);
});
节点似乎插入到集合中,但是当我在mongo中使用“show collections”命令时,节点集合没有出现 . 我在插入时也出现内部服务器错误 . 这个错误可能是什么原因?