标签: meteor

发布Meteor.users的某些信息以及Meteor.user的更多信息

我想为所有用户提供一组特定字段的客户端访问权限,而我希望只能访问当前用户的更多字段.我如何编写发布代码来完成此任务?

meteor

34
推荐指数
3
解决办法
3万
查看次数

向Meteor用户帐户添加更多字段

我正在使用mrt add accounts-ui-bootstrap-dropdownmrt add accounts-password在我的应用程序上运行一个简单的登录页面.

帐户用户给了我一个很好的哈希,包含id,createdAt,电子邮件等.

如果我想在此哈希中添加其他字段,以便稍后可以使用它们,我该怎么做?例如,我想要输入他们的名字和姓氏:

"given_name":"John","姓":"Doe"

user-accounts meteor

34
推荐指数
3
解决办法
3万
查看次数

如何正确地使模拟在Jest中抛出错误?

我正在使用Jest测试我的GraphQL api.

我正在为每个查询/突变使用单独的测试套装

我有2次测试(每一个在一个单独的测试套),其中我嘲笑一个函数(即,流星的callMethod),其在突变使用.

  it('should throw error if email not found', async () => {
    callMethod
      .mockReturnValue(new Error('User not found [403]'))
      .mockName('callMethod');

    const query = FORGOT_PASSWORD_MUTATION;
    const params = { email: 'user@example.com' };

    const result = await simulateQuery({ query, params });

    console.log(result);

    // test logic
    expect(callMethod).toBeCalledWith({}, 'forgotPassword', {
      email: 'user@example.com',
    });

    // test resolvers
  });
Run Code Online (Sandbox Code Playgroud)

console.log(result)我得到

{ data: { forgotPassword: true } }
Run Code Online (Sandbox Code Playgroud)

这种行为不是我想要的,因为在.mockReturnValue我抛出一个错误,因此期望result有一个错误对象

然而,在此测试之前,另一个是运行

 it('should throw an error if wrong credentials …
Run Code Online (Sandbox Code Playgroud)

javascript meteor jestjs graphql

34
推荐指数
3
解决办法
3万
查看次数

Meteor如何调用Meteor.methods()中定义的方法?

我正在为Meteor服务器分配方法,如下所示:

在bootstrap.js中

Meteor.startup(function () {
    Meteor.methods({

        foo: function () {
            return 1;
        },

        bar: function () {

        // QUESTION: HOW TO CALL Meteor.methods.foo
        return 1 + foo;        

        }
    });
});
Run Code Online (Sandbox Code Playgroud)

meteor

33
推荐指数
1
解决办法
3万
查看次数

何时使用Meteor.methods并使用存根

使用Meteor,我试图了解何时使用服务器端,Meteor.methods()同时仍保留即时UI更新.

从Andrew Scala的介绍性教程中,他声称Meteor.methods()应该在您想要更新和修改数据库文档时使用:

我们的想法是,您定义服务器上执行修改和更新数据等危险内容的所有功能,然后让客户端调用这些函数并获取常规函数等返回值.客户端永远不会看到实现,也不会亲自修改数据.服务器完成所有工作.

遵循这个建议,我在我的代码中实现了这个:

服务器端:

Meteor.methods({

  addMovie: function(data) {
    var movie = Movies.insert({name: data});
    return movie;
  },

  ...
Run Code Online (Sandbox Code Playgroud)

客户端:

Template.movies.events = ({

  'click #add-movie': function(e) {

    var name = document.getElementById('movie-name').value;
    Meteor.call('addMovie', name);

    return false;

  }, 

  ...
Run Code Online (Sandbox Code Playgroud)

这有效,但速度很慢.UI不会像Movies.insert()在客户端调用时那样立即更新.该文件表明,以纠正问题,您可以创建在客户端存根:

客户端上的调用方法定义与同名服务器方法关联的存根函数.如果您不希望,则不必为方法定义存根.在这种情况下,方法调用就像其他系统中的远程过程调用一样,您必须等待服务器的结果.

但这些存根应该是什么样的?它应该与服务器端方法基本相同吗?如果是这样,重点是什么?我正在寻找关于Meteor.methods()存根的使用和目的,点/使用及其实现的更全面的解释.

编辑:大卫格林斯潘已帮助阐明Meteor.methods()和存根在流星谈话中的使用.

javascript stubs node.js meteor

33
推荐指数
2
解决办法
9400
查看次数

如何设置Meteor.js loginButtons的样式?

文档指定使用模板{{> loginButtons}}实现默认登录按钮.

将自己的风格应用于此的最佳方法是什么?

  • 重写一个新模板(如何做到这一点?)
  • 为我标记的CSS文件添加样式 !important
  • 其他?

meteor

33
推荐指数
3
解决办法
2万
查看次数

流媒体与移动前端UI框架

有没有人将流星与移动前端框架集成在一起?

在使移动html5应用看起来"更原生"时,有许多CSS /前端框架.例如:

和更多.与普通的Bootstrap相比,主要的好处是:

  • 预加载内容
  • 流畅的全屏页面导航
  • ios/android的"本机外观"移动小部件

但是这些框架通常使用自己的MVC模型,例如将内容预加载到屏幕外DIV并进行全屏转换.他们经常使用与Meteor/IronRouter冲突的内部路由器或Pushstate.而离子例如取决于角度......

有没有人在这种集成方面取得成功?任何线索赞赏.

jquery-mobile meteor ionic-framework

33
推荐指数
2
解决办法
1万
查看次数

使用Meteor从单独的文件中调用函数

我想在Meteor中创建一个应用程序,从我理解它首先加载到子目录中的手册,然后按照字母顺序.我的文件结构是这样的......

/server
/lib
/client
    /lib
        game.js -> already starts declaring the function "makeBoard(){}"
    /template.js -> where the function "makeBoard()" is called.
Run Code Online (Sandbox Code Playgroud)

因此看起来错误函数"makeBoard()"不存在,只有当我在我想要调用它的同一文件中声明时才有效.即使我将文件"game.js"移动到"template.js"所在的目录,也会发生这种情况.我应该如何正确引用Meteor上不同文件中的资源?

function file-structure meteor

32
推荐指数
2
解决办法
1万
查看次数

如何使用Meteor Upsert

让我的Meteor upsert功能正常工作有点麻烦.我相当(200行代码)新的,我有点麻烦.

该集合继续插入其他行,而不仅仅是更新.我花了30分钟的谷歌搜索,但我找不到任何我能理解的例子.

这是我的代码:

Values.upsert(
    {
      // Selector
      source: "SourceOne",
      currency: "USD"
    },
    {
      // Modifier
      value: res.data['data']['last']['value'],
      time: Date.now(),
    }
  );
Run Code Online (Sandbox Code Playgroud)

我也试过了

if(Values.find(
      {},{fields: {'source':"SourceOne", 'currency': "USD"}}
    )) {
    Values.update(
      {
        source: "SourceOne", 
        currency: "USD"
      },
      {
        value: res.data['data']['last']['value'],
        time: Date.now()
      }
    );
  } else {
    console.log('blah');
    Values.insert({
      source: "SourceOne", 
      currency: "USD",
      value: res.data['data']['last']['value'],
      time: Date.now()
    });
  }
Run Code Online (Sandbox Code Playgroud)

而且似乎还无法弄明白.

mongodb meteor

32
推荐指数
2
解决办法
2万
查看次数

如何在流星模板中格式化日期

我需要以"mm-dd-yyyy"格式显示数据库中的日期.由于它以ISO格式保存,mongodb我如何在模板中转换它?这是我的代码.

       Template.templatename.vname = function () {      
        return Posts.find(); 
        }
Run Code Online (Sandbox Code Playgroud)

并在模板中

{{#each vname}}
    {{ date }} 
{{/each}}
Run Code Online (Sandbox Code Playgroud)

现在它显示为 Tue Feb 04 2014 00:00:00 GMT+0530 (IST)

我需要把它表现为 mm-dd-yyyy

handlebars.js meteor

32
推荐指数
2
解决办法
2万
查看次数