我想在帖子中插入用户名。当我尝试使用Post.insert({content: content})
添加帖子时,帖子已成功插入并显示在客户端上。现在我也尝试插入用户名,所以我尝试这样:
var username = new Meteor.user().username;
Post.insert({content: content, username: username});
现在不仅没有插入用户名,也无法插入内容。没错。我做错了什么?
以上是问题所在。但我犯了一个错误并删除了不安全的包,所以现在我无法从控制台检查结果或直接插入客户端。所以以下是我使用的方法。 (请耐心等待,如果我问愚蠢的问题,我是流星的新手,请原谅我。)
在进口/ 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();
}
});
我可以从服务器插入帖子并在客户端显示,但是从客户端我不能。我没有得到任何错误。
答案 0 :(得分:0)
你确定它在插入时失败了吗?你有一个新的"在Meteor.user()面前,我怀疑它在那里失败了。尝试以下操作,其中包括对用户的空检查,并显示来自插入的任何错误:
let username = Meteor.user() && Meteor.user().username;
Post.insert({content: content, username: username}, function(error) {
if (error) {
console.error(error);
}
};
你也有内容'在引号中,看起来不对。