Articles of meteor

我是否需要在Meteor的每个文件中导入npm包,并在每个文件中设置选项?

我试图习惯使用npm软件包与常规Atmosphere软件包一起引入Meteor 1.3。 我已经可以使用slug包了 meteor npm install slug 然后在我的一个.js文件中,我用这个命令导入slug import slug from 'slug'; 它似乎工作。 但是,当我从另一个.js文件中尝试时,它不起作用。 我是否必须将导入命令放在每个要使用的文件的顶部? 这是在内存中多次加载它? 我也在改变使用默认选项 slug.defaults.mode ='rfc3986'; 而且我想知道是否需要把它放在我所有文件的顶部。 气氛包是很简单的。 您只需添加它们,然后在整个项目中使用它们。

meteor应用程序因没有出现任何原因而令人失望

当我运行我的应用程序时,出现以下错误信息 Errors prevented startup: While processing files with ecmascript (for target web.browser): client/templates/posts/post_item.js:59:3: Unexpected token (59:3) Your application has errors. Waiting for file change. Started MongoDB. 我的代码中提到的部分是以下内容(最后一行是确切的) Template.postItem.events({ 'click .upvotable': function(e) { e.preventDefault(); Meteor.call('upvote', this._id); }, 'click .disable': function(e) { e.preventDefault(); Meteor.call('unupvote', this._id); } });//here is the problem 有人可以帮助我得到什么是错的 整个文件在那里如果需要的话: Template.registerHelper("isGreaterThanZero", function(array) { check(array, Array) […]

JavaScript更好的导入钩子,而不通过相对文件夹导航

在我的文件夹结构中编写testing时,困扰着我的是以下内容: //App meteor/imports/api/tasks.js //test meteor/test/imports/api/tasks.test.js 所以现在当我从tasks.js中导入一些东西,我import { task } from '../../../imports/api/tasks.js' ,我的文件夹结构变得比这更大。 有更好的解决scheme吗? 我正在考虑导入钩子,也许在根testing目录中,所以我可以从那里导入所有的东西,当我在testing中,我可以从导入钩子导入,而不必做所有的事情../../../../导航。

访问meteor中的入站HTTP标头?

我正在开发一个依赖于浏览器在HTTP头文件中发送的数据的应用程序(这是没有办法的)。 这也恰好是我第一次使用基于node.js的东西,所以很可能我完全错过了一些简单的东西! 基本上我想要做的是从客户端调用服务器上的方法,并在该方法中读取客户端发送的HTTP头。

如何一起使用node-imap和Meteor?

我正在寻找一种方式来访问像Gmail和使用meteor的IMAP邮件帐户。 我find了node-imap,但是由于它是一个NPM模块,所以我很难让NPM模块在Meteor中工作。 使用Meteor访问IMAP帐户有什么好方法吗?

你如何以及在哪里定义你的meteor数据库结构?

我正在看Meteor的文档,它给出了几个例子。 我对两件事情有点困惑:首先,你在哪里build立数据库(牢记安全)? 我是否全部保存在服务器/私人文件夹中以限制客户端访问? 其次,我如何定义结构? 例如,他们显示的代码: Rooms = new Meteor.Collection("rooms"); Messages = new Meteor.Collection("messages"); Parties = new Meteor.Collection("parties"); Rooms.insert({name: "Conference Room A"}); var myRooms = Rooms.find({}).fetch(); Messages.insert({text: "Hello world", room: myRooms[0]._id}); Parties.insert({name: "Super Bowl Party"}); 我不明白集合的结构是如何定义的。 他们只是能够定义一个集合,并将任意数据扔进它?

Meteor.js – 服务器上的全球事件?

Meteor.js有办法在服务器上发出全局事件吗? 例如 // how to set make myEmitter available across files/packages ? myEmitter = new Npm.require('events').EventEmitter; if(Meteor.isServer){ Meteor.methods({ 'foo' : function(){ myEmitter.emit('fooEvent', { 'bar' : 'hello!'}); } }); } 和 if(Meteor.isServer){ function doFoo(){ console.log('Foo done !'); } myEmitter.on('fooEvent', doFoo); }

meteor需要sudo来运行

以前我只能通过运行mrt来启动Meteor 0.6.6.3。 最近,meteor0.7.0.1将无法正常运行,除非我作为根与sudo mrt运行它。 像MONGO_URL这样的环境variables需要root来设置它。 任何想法发生了什么? 我在Mac OSX上使用Mountain Lion。

从meteor服务器build立TCP连接

我需要一些关于meteor的build议。 我想将现有的express / node.js应用程序移到meteor框架中,以利用服务器存储 – MongoDB和框架的MVC性质。 我的应用程序需要一个重大的重构。 我目前的应用程序服务器build立TCP连接到一个远程主机,每秒吐出string数据。 这个应用程序服务器处理来自远程主机的string数据,然后将其发送到应用程序客户端。 由于meteor使用node.js,我想这将是简单的移动我的当前应用程序服务器代码的TCP连接进入meteor服务器代码的一部分。 这是一个坚实的逻辑还是在草地上有一条蛇? 当然,总是尝试一下,看看会发生什么。 我把这样的东西放在Meteor.startup() var net = Npm.require('net'), dataStream = net.createConnection(5000,"localhost"); dataStream.setEncoding('utf8'); dataStream.on('data', function(data) { var line = data.trim(); Messages.insert({name:"line",message: line, time:Date.now()}); }); 我正在接受关于在光纤之外运行的Meteor代码的投诉。 正在更新一个客户端和服务器可见的集合是否正确的方式去这里? 我假设更新将保持在服务器上,并推送到客户端,我将有一个视图来显示更改。

Meteor / Node.js:for循环中的多个http请求,在一个定时间隔内均匀分布?

尊敬的JS开发人员 – 我试图在一个Meteor应用程序中按时间间隔进行一批服务器端http请求,并根据收到的响应更新MongoDB数据库。 每15秒钟一批请求应该开始,并且请求的集合应该在15秒内均匀分布(而不是一次性地泛滥API服务器)。 为了均匀地传播请求,我试图使用setTimeout方法。 有两个参数在每个http请求之间改变,这些不同的值存储在两个单独的数组中。 而不是拼出每个http请求(如果您计算两个数组之间的所有组合,20 * 4 = 80),我已经在for循环中编写了一个for循环来大大整合代码。 对于每个响应,如果返回OK,则两个switch语句通过评估它的i和y值来处理响应的处理方式。 问题:我似乎在“回拨地狱”。 当响应从服务器到达时, i和/或y的值有时已经被循环系统增加了,所以我不能100%确定地用switch语句处理响应。 updatedb()函数最终对错误响应执行特定的计算(将它们存储在数据库中的错误位置)。 希望有人可以提供一些指导,我可以做不同的事情来解决这个问题,因为我在智慧的结尾。 PS我试图用recursion的方法做到这一点,但得到了Maximum call stack size exceeded错误。 test = function test(){ // API base URL var baseURL = "https://example.com/"; // Array1 var array1 = ['item1', // i = 0 'item2', // i = 1 'item3', // i = 2 'item4', […]