Articles of meteor

我如何使用node.js和gm创buildpdf的缩略图

我使用meteor(它是build立在节点上)和CollectionCFS(它允许我使用gm [GraphicsMagick]进行拇指钉钉)。 我做了以下操作,让它自动创build上传图片的缩略图: new FS.Store.FileSystem("thumbs", { transformWrite: function(fileObj, readStream, writeStream) { gm(readStream, fileObj.name()).resize('100', '100').stream().pipe(writeStream); }, path: "/Volumes/Public/Thumbs", }) transformWrite函数接收readStream(原始图像),对其进行修改并将结果传递给writeStream。 我怎么能创buildPDF的缩略图?

可以用节点而不是meteor启动一个Meteor App?

如何用node而不是meteor启动Meteor App。 我试过这个: $ meteor create m; m: created. To run your new app: cd m meteor $ cd m; $ meteor; [[[[[ c:\git\m ]]]]] => Started proxy. => Started MongoDB. => Started your app. => App running at: http://localhost:3000/ Type Control-C twice to stop. # OK! This works :O) $ node .meteor\local\build\main.js; module.js:338 throw […]

meteor:超出最大调用堆栈大小

我尝试做一些我已经做了几次,从来没有遇到过这样的错误。 我只是想在我的meteor应用程序中find他们的X字段等于Y的所有文件: JS:(模板的帮手) 'friendPictures' : function(){ var currentFriendId = this._id; Pictures.find({ownerId: currentFriendId}); // DO SOMETHING WITH THE PICTURES } HTML :(模板内) {{#each friend}} … {{friendPictures}} // Calling for the helper … {{/each}} 在尝试执行“find()”时,我仍然遇到这个错误,同样在Chrome的控制台中: Uncaught RangeError: Maximum call stack size exceeded at Object.EJSON.clone (http://localhost:3000/packages/ejson.js?71047b64b5196348bdbe5fd5eea9ac97a5a9eb14:528:3) at http://localhost:3000/packages/ejson.js?71047b64b5196348bdbe5fd5eea9ac97a5a9eb14:530:22 at Function._.each._.forEach (http://localhost:3000/packages/underscore.js?0a80a8623e1b40b5df5a05582f288ddd586eaa18:164:22) at Object.EJSON.clone (http://localhost:3000/packages/ejson.js?71047b64b5196348bdbe5fd5eea9ac97a5a9eb14:529:5) at http://localhost:3000/packages/ejson.js?71047b64b5196348bdbe5fd5eea9ac97a5a9eb14:530:22 at Function._.each._.forEach […]

meteor采摘器服务器端路由器使用快递中间件

我想使用select器服务器端路由器中的res.send('string')或res.json(json)在我的meteorrestapi快递函数。 在文档中,它说: 您可以使用现有的连接和表示中间件没有任何问题。 我如何使用res.send和res.json等快捷function? 当我尝试使用它们时,它告诉我他们不是一个function。 我有我的服务器的以下main.js文件: import { Meteor } from 'meteor/meteor'; import { Picker} from 'meteor/meteorhacks:picker'; var bodyParser = Meteor.npmRequire('body-parser'), methodOverride = Meteor.npmRequire('method-override'), logger = Meteor.npmRequire('morgan'); Picker.middleware(bodyParser.json()); Picker.middleware(bodyParser.urlencoded({extended:false})); Picker.middleware(logger('dev')); Picker.middleware(methodOverride('X-HTTP-Method')); // Microsoft Picker.middleware(methodOverride('X-HTTP-Method-Override')); // Google/GData Picker.middleware(methodOverride('X-Method-Override')); Meteor.startup(() => { console.log('meteor server started'); var postRoutes = Picker.filter(function(req, res) { return req.method == "POST"; }); postRoutes.route('/post/:id', […]

显示Meteor React Client中的所有用户

我有一些麻烦让所有注册用户显示在客户端。 std:accounts-ui包包含在.meteor/packages 。 autopublish包已被删除。 所有用户的数据都作为allUsers在Users.js中allUsers ,而客户端从react-meteor-data提供的createContainer订阅allUsers发布。 但是,页面只呈现当前login的用户的详细信息Meteor.users().find().fetch()在浏览器中运行Meteor.users().find().fetch()只显示当前login的用户,如果用户是未login。 在服务器端运行console.log(Meteor.users.find().fetch()正确输出所有用户。 为什么在浏览器上发生这种情况? /imports/api/Users.js import { Meteor } from 'meteor/meteor'; if (Meteor.isServer) { Meteor.publish('allUsers', function() { return Meteor.users.find({}); }) } /imports/ui/App.jsx import React, { Component, PropTypes } from 'react'; import { createContainer } from 'meteor/react-meteor-data'; import { Accounts } from 'meteor/std:accounts-ui'; import { Table } from 'react-bootstrap'; import User […]

Meteor.call(“函数”,arg)不同步发生

尽pipebuild议这是一个同步调用,但是我目前没有得到任何以下函数的返回值。 如果我asynchronous做(即function(错误,等等){console.log(等等);}),我得到正确的,预期的输出。 Template.file_nav.files = function(path) { path = path || "/"; var x = Meteor.call('get_files', path); return x; } 以下是“get_files”方法的服务器端代码: Meteor.methods( { get_files : function get_files(path) { return [ { "name" : " bob" }, { "name" : "alice" }, ]; } 另外,这里的HTML部分正确调用,以防万一它是相关的: <template name="file_nav"> <div> <ul style="dirnav"> {{#each files}} {{#if isDirectory this}} <li><a href="javascript:void(0)" […]

使Meteor.methods同步和asynchronous

有时我需要Meteor.call来writeMeLater排队并同步执行(阻止来自同一个客户端的writeMeLater其他调用)。 其他时候writeMeLater的调用应尽快执行,而不排队等待当前排队的所有调用。 下面是我尝试使用this.unblock()如果一个async参数为true。 案例1和2工作正常。 但在案例3中,使用async=true调用在async=true调用后面排队! 我们如何使用async=true来调用跳过队列? 这与来自第二客户端的呼叫在来自第一客户端的呼叫之后没有排队是类似的, 所有的Meteor.call()都是由客户端创build的 情况1(正确同步): Meteor.call('writeMeLater', 's', false) Meteor.call('writeMeLater', 's', false) Meteor.call('writeMeLater', 's', false) 情况2(正确asynchronous): Meteor.call('writeMeLater', 'a', true) Meteor.call('writeMeLater', 'a', true) Meteor.call('writeMeLater', 'a', true) 情况3(不是所需的行为) Meteor.call('writeMeLater', 's', false) Meteor.call('writeMeLater', 's', false) Meteor.call('writeMeLater', 's', false) Meteor.call('writeMeLater', 'a', true) Meteor.call('writeMeLater', 'a', true) Meteor.call('writeMeLater', 'a', true) 服务器/ main.js writeMeLater = function(data, callback) { console.log('writeMeLater: […]

Meteor wrapAsync同步执行,但从不返回

我试图用wrapAsync封装一个节点包中的函数。 filepicker = new Filepicker('API Key') filepickerStatSync = Meteor.wrapAsync(filepicker.stat, filepicker) result = filepickerStatSync(url); console.log('after') stat函数如下。 一切似乎工作正常…请求调用响应正确的结果,最后的callback被调用,整个事情同步执行/产量正确,据我所知…但同步调用永远不会返回和console.log ('之后')从未被击中。 我不认为我犯了同样的错误发生在这个问题上,因为我的函数有一个callback作为最后一个参数。 我也不认为解决scheme是在这个问题上,因为包装函数结束与调用错误和结果的callback,这应该是什么Meteor.wrapAsync在签名中寻找。 Filepicker.prototype.stat = function(url, options, callback) { callback = callback || function(){}; if(!options) { options = {}; } if(!url) { callback(new Error('Error: no url given')); return; } request({ method: 'GET', url: url+'/metadata?', form: { size: options.size || […]

Node.js中的MongoDBtypes

是否有一个node.js模块允许我的应用程序具有与MongoDB相同的types: http://docs.mongodb.org/manual/reference/bson-types/ 例如,在我的node.js应用程序中,我希望它对Integertypes有完整的理解,但是node.js不能识别任何东西,除了我自己理解的开箱即用的数字。

如何在2015年部署生产meteor服务器?

meteor发生了变化,在docs.meteor.com中缺less生产部署。 我有一个相当不错的工作meteor应用程序在开发模式。 所以我把它捆绑到新的命令,因为bundle已经被弃用了: meteor build ./build/ –architecture os.linux.x86_64 在生产服务器上,我安装最新版本的nodejs(当前为0.12),复制和解压缩构build。 Mongo DB在其他服务器上,所以我只是重新定义了PORT,ROOT_URL,MONGO_OPLOG_URL和MONGO_URL环境variables。 但很快结束了太频繁看到的纤维缺less错误: module.js:338 throw err; ^ Error: Cannot find module 'fibers' at Function.Module._resolveFilename (module.js:336:15) at Function.Module._load (module.js:278:25) ……….. 所以,这是我的尝试: npm install fibers@1.0.1 -g#但是失败。 npm安装光纤-g成功并安装版本1.0.5 情况如下: root@server:~# npm version { npm: '2.5.1', http_parser: '2.3', modules: '14', node: '0.12.0', openssl: '1.0.1l', uv: '1.0.2', v8: '3.28.73', zlib: '1.2.8' […]