Articles of meteor

带Meteor的Filepicker.io:如何返回实际的资产,而不是指向资产的链接

我正在使用filepicker.io与Meteor应用程序,并正在为我的应用程序的安全性工作。 Filepicker为创build和签署策略提供支持,但在Meteor的服务器端,我觉得为每个请求文件的用户创build过期的策略是过度的。 我想要做的是提供给用户间接链接到一个文件。 服务器用服务器端路由(铁路由器)拦截这个请求,然后服务器通过带有关于所述文件的元数据的Files集合来检查用户是否具有该文件的许可。 就像我现在所做的那样,如果用户有访问权限,我会为他们提供一个带有签名和策略的文件链接作为该链接的参数。 相反,我宁愿只返回图像或文件资产,根本没有链接。 例如,服务器端将通过只有服务器知道的链接访问文件或映像,但是服务器会将该文件或映像stream式传输到客户端,而不共享到文件的实际链接。 预期的代码看起来像下面这样,我最终不知道该怎么做: @route "file", path: "/file/:_id" where: "server" action: -> if @request.cookies.meteor_login_token user = Meteor.users.findOne( {"services.resume.loginTokens.hashedToken": Accounts._hashLoginToken(@request.cookies.meteor_login_token)} ) if user # the files collection has metadata about each file # these files are uploaded through filepicker # this include file.url which is the actual link file = share.Files.findOne( {_id: […]

铁路由器模板数据呈现callback

我传递一个数据对象到一个模板与铁路由器,但想访问Template.name.rendered = function() { … }callback内的数据。 从meteor数据上下文铁路由器我试过UI.getData()但收到一个错误There is no current view 。 使用this.data将返回null。 我怎样才能访问从呈现的callback传递给模板的数据对象?

pipe理员login时如何才能访问其他网页

如何在pipe理员login时访问其他页面。单击其他链接时始终显示仪表板页面。 你能检查我的代码吗? Router.onBeforeAction(function() { if (!Meteor.user()) { this.render('login'); } else { this.render('dashboard'); } }); Router.route('users', function() { this.render('users'); }); Router.route('orders', function() { this.render('orders'); }); 注:当我点击用户和订单的链接,它显示我的仪表板。

Meteor.Call奇怪的行为

我在服务器上运行以下代码: 服务器/ tickets.js if (Meteor.isServer) { ticketsCollection = new Mongo.Collection('tickets'); var tickets = ticketsCollection.find({}).observe({ added: function(tkt) { Meteor.call('allocateTicket', tkt); } }); } 服务器/ ticket_allocation.js Meteor.methods({ allocateTicket: function(ticket){ console.log(ticket); } }); 起初,当服务器启动时,我得到的错误: 排队任务中的​​exception:错误:未find方法[404] 但是,随后的通话很顺利。 不知道为什么它启动服务器时无法识别meteor调用function。 有没有类似于订阅中使用this.ready()的方法。

meteorjs – dynamic扫描文件夹并添加到collections

我是meteor和JavaScript的新手,并试图让应用程序search一个MP3文件夹,然后将位置和名称添加到集合。 如果有预先存在的(javascript)方法,请告诉我哪里可以find它们。 如果你也知道什么可能是从大气或git回购改装,请让我知道。 谢谢!

卸载应用程序 – 错误“npm install”

在我的应用程序废弃后。 该项目依赖于光纤1.0.5和安装过程中的错误。 我在Mac OSX Yosemite,节点V 4.0.0 任何帮助或见解将不胜感激。 node) child_process: options.customFds option is deprecated. Use options.stdio instead. CXX(target) Release/obj.target/fibers/src/fibers.o ../src/fibers.cc:132:44: error: too many arguments to function call, expected at most 2, have 4 return Signature::New(isolate, receiver, argc, argv); ~~~~~~~~~~~~~~ ^~~~~~~~~~ /Users/…/.node-gyp/4.0.0/include/node/v8.h:4675:3: note: 'New' declared here static Local New( ^ ../src/fibers.cc:140:3: error: no member named 'SetResourceConstraints' in […]

在meteor中使用Mongo聚合

我有我的collections如下: id: 'some_id' items: [ {name:x}, {name:y} ] 当我做collection_object.find({id:'some_id'},{items:1,_id:0}) ,它返回一个对象,而不是实际的数组。 然后我跟着这里的答案 ,并使用我的meteor帮手中的aggregate函数,而不是查找。 新的呼叫是: collection_object.aggregate({$match:{id:'mseb'}}, {$unwind:'$items'} ) 这提出了aggregate未定义的错误。 两个问题: 1.如果find调用返回一个包含数组的对象,那么如何访问模板中数组的单个元素。 使用{{this.items}}再次显示一个数组,“对象”和{{this.items.name}}是未定义的。 2.如果不是1,那么怎样才能和meteor合作。 更新:我遵循meteorhacks:聚合的方法,但也给出了相同的结果。 下面的答案为我工作。

在fs.readFile()的callback函数中使用Email.send时发生meteor“光纤”错误

当我尝试在Email.send的callback中使用Email.send时,我得到Error('Can\'t wait without a fiber') 。 如果我直接打电话给Email.send我不会得到这个错误。 这是错误: (STDERR) /Users/james/.meteor/packages/meteor-tool/.1.1.8.tvnipv++os.osx.x86_64+web.browser+web.cordova/mt-os.osx.x86_64/dev_bundle/server-lib/node_modules/fibers/future.js:155 throw new Error('Can\'t wait without a fiber'); ^ => Exited with code: 8 (STDERR) Error: Can't wait without a fiber at Function.wait (/Users/james/.meteor/packages/meteor-tool/.1.1.8.tvnipv++os.osx.x86_64+web.browser+web.cordova/mt-os.osx.x86_64/dev_bundle/server-lib/node_modules/fibers/future.js:155:9) at Object.Future.wait (/Users/james/.meteor/packages/meteor-tool/.1.1.8.tvnipv++os.osx.x86_64+web.browser+web.cordova/mt-os.osx.x86_64/dev_bundle/server-lib/node_modules/fibers/future.js:397:10) at smtpSend (packages/email/email.js:86:1) at Object.Email.send (packages/email/email.js:176:1) at email.js:49:17 at fs.js:272:14 at Object.oncomplete (fs.js:108:15) 这是我的JavaScript。 请注意,我使用了一个虚拟的MAIL_URL来保护无辜者。 if (Meteor.isClient) { var […]

如何使用`Meteor.bindEnvironment`绑定?

我有点困惑与Meteor.bindEnvironment bind的行为,以及与Meteor.bindEnvironment的范围。 例如, 使用箭头函数,箭头函数应该保持外部范围 : 从本质上讲,它允许你创build一个匿名函数,其上下文值是“this”,这个函数的作用域就是定义箭头函数的外部函数的作用域。 所以,当我使用下面的代码,它似乎工作,但console.log似乎说this是meteor的范围。 Cylon = new EventEmitter(); Cylon.messages = new Mongo.Collection('_cylon_messages'); Cylon._commands = net.connect(Settings.connection); Cylon._createConnection = function (name, connection) { let socket = net.connect(connection, Meteor.bindEnvironment(() => { this.messages.insert({ name: name, message: 'connected'}) })); socket._name = name; return socket; } 另一个我一直不理解的例子是在需要Meteor.bindEnvironmentcallback中使用bind。 例如: Cylon.execute = function (routine) { check(command, String); let future = […]

非模板特定助手应该放在Meteor的什么位置?

我有两个模板和表格 <template name="table1"> <table>…</table> </template> 和 <template name="table2"> <table>…</table> </template> 我想要使​​用相同的variables填充两个模板,但仍然有两个不同的模板分隔。 如果我在同一个模板中有两个表格,那么为模板创build一个辅助函数将很容易: <template name="bothTables"> <table>…</table> <table>…</table> </template> 我想我应该为这两个模板创build一个助手,但在其他地方有variables的逻辑。 我应该在哪里find与我想要填充到两个模板的variables值的函数的文件?