Javascript 如何捕获流星并将流星的错误警报插入客户端数据库?
我刚刚在meteor中编写了一个错误通知面板,在这里我创建了一个客户端mongodb,但我不能将meteor.error消息通过throwError函数推送到客户端db,目前它显示在一个警报框中 collection/signup.jsJavascript 如何捕获流星并将流星的错误警报插入客户端数据库?,javascript,node.js,mongodb,meteor,meteorite,Javascript,Node.js,Mongodb,Meteor,Meteorite,我刚刚在meteor中编写了一个错误通知面板,在这里我创建了一个客户端mongodb,但我不能将meteor.error消息通过throwError函数推送到客户端db,目前它显示在一个警报框中 collection/signup.js signupDB = new Meteor.Collection('signup'); Meteor.methods({ signupSubmit : function(postData) { var signinEmailExis
signupDB = new Meteor.Collection('signup');
Meteor.methods({
signupSubmit : function(postData) {
var signinEmailExist = signinDB.findOne({
email : postData.email
});
if (postData.email && signinEmailExist)
throw new Meteor.Error(422, "exist in signinDB");
var signupEmailExist = signupDB.findOne({
email : postData.email
});
if (postData.email && signupEmailExist)
throw new Meteor.Error(422, "exist in signupDB"); //
var user = _.extend(_.pick(postData, 'email', 'password'), {
insert_time : new Date().getTime() });
var userId = signupDB.insert(user);
return userId;
}
});
client/error/error.js
errorDB = new Meteor.Collection(null);
throwError = function(data) {
errorDB.insert({data: "in throwError", del: "N"})
}
errorDB.insert({data:“in signup”,del:“N”})
code正在客户端文件夹中的任何位置工作
此处无法调用throwError函数,但signupSubmit方法错误显示在警报框中
发布/订阅问题是否与thinks类似(不是为注册数据库编写的)
如何捕获流星并将流星的错误警报插入客户端数据库
是否有其他类似于投掷者的功能来捕捉流星。方法错误?您如何调用该方法?您需要执行以下操作:
Meteor.call('signupSubmit', user, function(err) {
errorDB.insert(err);
});
然而,您似乎正在实现一个自定义的、不安全的身份验证系统。你不应该这样做;流星有一个伟大的,安全的内置软件包。您需要做的就是(在客户端):
如果用户名/电子邮件重复,则
Accounts.createUser
方法会自动返回错误。如何在管理员批准后创建临时用户列表以供管理员批准创建用户帐户如果您的临时用户列表将具有明文密码,请不要这样做。在处理密码时,您应该始终使用Meteor的内置帐户方法。为了实现您想要的简单方法,您应该在创建用户时向用户的配置文件中添加类似“approved”字段的内容,最初设置为false
。仅管理员模板将包含一个用户列表,每个用户都有一个按钮,用于设置用户的配置文件。已批准的为true
。然后,每当用户试图做任何事情时,你都会检查他们是否被批准。@Cuberto,好建议。我还要补充的是,profile
字段由accounts软件包自动发布,按照惯例,用户可以编辑。因此,approved
字段应该基于根user
对象本身,而不是user.profile
。检查包
errors = new Meteor.Collection;
Accounts.createUser({
email: email,
password: password
}, function(err) {
errors.insert(err);
});