【发布时间】:2017-06-26 21:38:59
【问题描述】:
我想在帖子中插入用户名。当我尝试使用Post.insert({content: content}) 添加帖子时,帖子已成功插入并显示在客户端上。现在我也尝试插入用户名,所以我尝试这样:
var username = new Meteor.user().username;
Post.insert({content: content, username: username});
现在不仅没有插入用户名,它也无法插入内容。没有错误。我做错了什么?
以上就是问题所在。但是我犯了一个错误并删除了不安全的包,所以现在我无法从控制台检查结果或直接在客户端插入。所以下面是我使用的方法。 (请耐心等待,我是流星新手,如果我问愚蠢的问题,请原谅我)。
在 imports/both/post.js 我放了:
export const Post = new Mongo.Collection('post');
在 server/main.js 中
import { Post } from '/imports/both/post.js';
Meteor.methods({
addPost: function (content) {
var user = Meteor.users.findOne(this.userId);
var username = user ? user.username : 'Anonymous';
Post.insert({content: content, username: username});
}
});
在client/template/postsForm.js中,如下代码:
import { Post } from '/imports/both/post.js';
Template.postsForm.events({
'submit form': function(event){
event.preventDefault();
var content = document.getElementById('content').value;
Meteor.call('addPost', content);
event.target.reset();
}
});
我可以从服务器插入帖子并在客户端显示,但从客户端我不能。我没有错误。
【问题讨论】:
-
你为什么在
Meteor.user().username之前使用new? -
我正在关注一个教程,它是这样显示的。
-
你能链接到那个教程吗? zim 的答案很可能是您所需要的
-
请检查编辑后的版本,让我知道该怎么做:)
标签: meteor meteor-blaze meteor-accounts