Tag: meteor

使用window.location.assign会导致Meteor.userId丢失

我写了一个Meteor网站,其中客户端路由由angular-meteor完成,服务器路由由IronRouter完成。 其中一个调用要求在浏览器操作之后,我调用服务器端路由,所以我正在使用: window.location.assign('/my/server/route') 而不是Angular $ location.path(…)(因为这个url没有客户端路由) 我注意到,如果用户login,那么在调用window.location.assign后, Meteor.userId在服务器端变为空。 从我的日志 – 之前.assign(客户端和服务器端): Meteor.userId: iaPkB6cxKGMS7b7H6 分配后(服务器端) Meteor.userId: null 有人可以解释为什么userId在这种情况下丢失?

在另一个meteor电话里面的meteor电话

我有一个meteor调用结构如图所示: Meteor.call('method1', function(err, result){ //do something Meteor.call('method2', function(err, result){ //do something }) … }) 'method2'有时不被调用。 我尝试了一个解决scheme,为“method2”添加了“setTimeout”,但是在2周后,方法2的剂量不再被随机调用。 任何人有任何线索? 感谢您的帮助。 有关我的代码的更多细节: 1)有两台服务器通过集群连接,命名为server1和server2 2)server1中定义的meteor方法命名为server1_method1和server1_method2 3)server2中定义的meteor方法命名为server2_method1和server2_method2 // server1的客户端 Meteor.call("server1_method1", function(err, result){ if(result){ Meteor.call("server1_method2", function(err,result){ //do something }) } }) // server1的服务器 var server2 = Cluster.discoverConnection('server2'); Meteor.methods({ 'server1_method1':function(){ server2.call('server2_method1', function(err, result){ //where problem happens if(result){ server2.call('server2_method2', function(err, result){ if(result){ //do […]

meteor:正确的方式发送POST请求到模数API

我有一个模块上的meteor应用程序托pipe。 模数在这里有一个API: https : //api.modulus.io/ API代码位于此处: https : //github.com/onmodulus/modulus-cli/blob/master/lib/librarian/librarian.js#L361 我想通过API将域保存到我的部署模块之一。 我知道这是我想要连接到的代码: https : //github.com/onmodulus/modulus-cli/blob/master/lib/librarian/librarian.js#L361 librarian.project.saveDomains = function(projectId, domains, authToken, callback) { if(checkInit(callback)) { librarian._http.request(util.format('/project/%s/domains?authToken=%s', projectId, authToken), 'POST', domains, callback); } }; 我是新来的API调用。 我相信我需要从我的meteor应用程序中的服务器调用,这可以使用meteor方法来处理,但我不知道API调用应该是什么样子。 我已经在线和在SO上进行了研究。 没有运气,我正在与API调用缺乏经验,所以我从一个小方向看。 我已经添加了meteor的http包: meteor add http 我想下面是在球场,但目前没有工作: POST javascript //save arguments object to options variable var options = { projectId: xxx, domains: […]

在MacOS上运行Windows上的meteor应用程序

我从一个在MacOS上开发的朋友那里得到了一个Meteor项目。 当试图运行它,我得到: 该项目使用METEOR@1.0.2.1,这在Windows上不可用。 要在所有支持的平台上使用此应用程序,请使用meteor更新 – 释放METEOR@1.2.1将此应用程序固定到最新的Windows兼容版本。 运行时,我得到: 在检查cfs时:gridfs@0.0.27:找不到兼容的二进制文件… 然后,当我尝试覆盖(使用运行而不是更新),而不实际更新,它启动代理和Mongo,但后来打破,但跳过第一个错误 在构build包npm-container:error时:不知道处理文件'../../packages.json'的插件。 如果你想这个文件是一个静态的资产,使用addAssets而不是addFiles; 例如api.addAssets('../../ packages.json','client')。 我读到这个错误是通过更新meteorhacks修复的,但是当我尝试,我得到meteor版本的冲突(见第一个错误),我不知道如何摆脱循环。 有人可以照亮一些如何解决这些错误?

在带有错误的Windows 7上安装Meteor

我已经安装了Npm和Node.js ImageMagick – 可选但build议对于Windows安装,您还需要:Win32 OpenSSL Visual Studio 2008可再发行组件Git / mysgit 但是,当我使用命令; meteor run它仍然显示下面的错误。 Your app is crashing. Here's the latest log: C:\Users\DELL\AppData\Local\.meteor\packages\meteor-tool\1.1.10\mt-os.windows.x86_32\dev_bundle\server-lib\node_modules\fibers\future.js:245 throw(ex); ^ Error: The operating system cannot run %1. C:\Users\DELL\AppData\Local\.meteor\packages\npm-node-aes-gcm\0.1.3_6\npm\node_modules\node-aes-gcm\build\Release\node_aes_gcm.node at Module.load (module.js:356:32) at Function.Module._load (module.js:312:12) at Module.require (module.js:364:17) at require (module.js:380:17) at Object.Npm.require (E:\xampp\htdocs\reactioncommerce\reaction\.meteor\local\build\programs\server\boot.js:162:18) at Package (packages/npm-node-aes-gcm/packages/npm-node-aes-gcm.js:10:1) at Package (packages/npm-node-aes-gcm/packages/npm-node-aes-gcm.js:25:1) at E:\xampp\htdocs\reactioncommerce\reaction\.meteor\local\build\programs\server\packages\npm-node-aes-gcm.js:45:4 […]

Meteor Js作为前端,Koa Js作为后端

我正在创build一个Meteor Js应用程序作为前端,我使用Koa Js作为后端。 我的Koa目的是能够监视我的前端meteor应用程序的浏览量。 你能告诉我如何开始?

Meteor.call(…)导致刷新页面

我正在开发一个非常简单的使用Meteor的投票应用程序。 voteapp.meteor.com 点击投票button(select一个选项后出现)后,页面刷新。 点击事件: Template.poll.events({ "click input.inc": function (event) { // Prevent default browser form submit event.preventDefault(); Meteor.call('voteForAnswer', Session.get("selectedanswer"), function (error, result) { if (error) { Session.set("voteError", error.reason); } else { Session.set("voteError", null); Session.set("selectedpoll", result); } }); } }); Meteor.callfunction: 'voteForAnswer': function (id, vote) { var answer = Answers.findOne(id); var poll = Polls.findOne(answer.poll); if (poll […]

meteorSEO渲染和订阅

我正在使用meteor的Web应用程序的search引擎优化。 在订阅数据的过程中,我们使用一个模板显示一个加载循环。 当我使用Googlebot视图来查看Google如何索引我的页面时,我只能看到布局和此加载循环。 我注意到,当这个圆圈出现时,浏览器图标就像加载。 就好像Googlebot不会等待模板中的订阅一样。 我在铁路路由器订阅没有问题。 任何人都有关于它的信息? Ps:我们已经使用spiderable软件包,我认为这是一个反应var的问题,通知订阅已经准备就绪。

使用transform更新集合中添加的道具的数据

这是我堆栈溢出的第一个问题,所以请随时要求我更准确。 我在meteor服务器上有一个MongoDB集合。 使用transform选项,我添加了一个简单的可以切换的选定属性: Nodes = new Mongo.Collection("nodes", { transform : function(item) { item.selected = false; item.toggleSelected = function() { item.selected = !item.selected; } return item; } }); 我添加了一个函数toggleSelected因为我不能修改用meteor的Update函数select的属性(或者我可能不知道如何)。 所以这给我带来了我显示Nodes列表的问题。 在这个列表中,我可以select和取消select每个节点,当我select它时,我希望带有React的UI来更新自己,以便我们可以看到该节点被选中: Node = React.createClass({ propTypes: { node: React.PropTypes.object.isRequired, }, render() { return ( <li onClick={this.toggleSelected}> <span>{this.props.node.text}</span> <span className="single-node">Selected : {this.props.node.selected?"true":"false"}</span> </li> ); }, toggleSelected(){ this.props.node.toggleSelected(); } […]

Meteor Collection插入在callback中不起作用

我有集合在APIcallback函数里面插入,callback工作但是集合不插入值。 这是代码: namecheapApi.apiCall("namecheap.domains.check", {DomainList: 'example.com'}).then(function (data) { console.log("Inside callback"); Domain.insert({somefield: 2})); }); 如果打电话只是插入: Domain.insert({somefield: 2})); 值插入所以问题不在Collection定义中。 代码正在服务器上运行。 可能是什么原因?