Articles of heroku

设置Heroku环境variables而不重新启动应用程序

是否有可能设置一个Heroku环境variables而不重新启动应用程序? 我的应用通过OAuth2连接到不同的在线服务。 对于我连接的每个服务,我需要设置一个OAuth2 ID和密码。 为了让这些configurationvariables保持在我的代码之外,我使用了环境variables,并在process.env (node.js)中读取它们。 每次我添加一个新的服务到我的应用程序,我需要添加相应的环境variables的ID和秘密。 在推送最新的代码之前,我需要这样做,以便在下次启动新的服务连接时,可以使用OAuth2 ID和密码variables。 目前我的工作stream程如下: 使用Heroku工具带设置环境variables: heroku config:set <SERVICE>_ID=foo <SERVICE>_SECRET=bar 推最新的代码: git push heroku master 目前,这两个操作将重新启动应用程序。 我真的更喜欢第一个操作不重新启动应用程序,因为这些configurationvariables的变化不需要生效,直到步骤2)。 通过在步骤1)重新启动我的应用程序将经历不必要的停机时间。 那么,有没有办法来防止步骤1)重新启动应用程序?

我怎样才能实时检索更新的logging? (推送通知?)

我正在尝试在rails电子商务应用程序中创build一个ruby,在这个应用程序中,潜在客户将能够下订单,店主将能够实时接收订单。 最终订单将被logging到数据库中(目前SQLite),并且店主将打开一个浏览器窗口,新订单将在订单完成后立即显示。 (应用程序信息:我正在使用HOBO rails框架,并计划在Heroku中托pipe应用程序) 我现在正在考虑实现这个最好的技术,因为应用程序预计会有很多用户发送大量的命令: 1)每个浏览器窗口每隔X分钟刷新页面,连续轮询服务器以获取新logging(新订单)。 当然,这会给服务器带来沉重的负担。 2)如上所述,但用某种AJAX框架轮询服务器。 3)使用某种服务器推送技术,如“彗星”asynchronous消息。 发现Juggernaut,唯一的问题是它使用Flash和自定义端口,这可能是一个问题,因为我的应用程序应该可以在公司防火墙和NAT后面访问。 4)我也检查node.js框架,似乎是这种asynchronous消息传递的效率,虽然在Heroku中不支持。 哪种是实现这种function的最有效的方法? 还有没有想过的另一种方法? 感谢您的时间和帮助!

如何使用node-mongodb-native连接到Heroku?

我对如何连接到Heroku上的MongoLab感到非常困惑。 要使用uri连接到Heroku,我试图遵循这个例子: http : //experiencecraftsmanship.wordpress.com/2012/01/06/heroku-node-js-mongodb-featuring-the-native-driver/ 我看着他的web.js和deep.js。 他们都这样做: connect.createServer( require( 'connect-jsonrpc' )( contacts ) ).listen( port ); 但是,只有“通讯录”中的数据库查询被传递到这个服务器呢? 我允许为我的每个数据库访问方法做多个connect.createServer吗? 以下是我在本地连接到MongoDB的代码的一部分。 我不确定如何修改它以连接到Heroku上的MongoLab。 有人可以教我如何修改我的代码连接? 或者解释一下这些概念? 我不知道为什么我发布的那个网站的作者使用了这么多的callback来进行数据库调用,当我的方法看起来很简单(我是JavaScript新手,不太适合callback)。 var app = module.exports = express.createServer( form({ keepExtensions: true }) ); var Db = require('mongodb').Db; var Server = require('mongodb').Server; var client = new Db('blog', new Server('127.0.0.1', 27017, {})); var posts; var getAllPosts […]

在Heroku中运行Node.js应用程序与集群模块是没有意义的?

Heroku可以运行 Web Dynos 和 工人Dynos 以便Web Dynos负责pipe理路线 和工人工人Dynos照顾处理工作。 由于有一个Dyno的单位, 看来使用Node.js集群模块对Heroku来说是毫无意义的。 因为Node.js集群模块是使用服务器CPU的全部核心 而Dyno似乎是CPU核心的虚拟单元。 我对吗? 还是值得运行一个node.js应用程序与集群模块?

用grunt,bower,node模块部署到heroku

我正在部署一个平均的应用程序heroku和使用凉亭和咕噜声。 我应该在git repo中包含我的节点模块吗? 如果没有,我真的不知道我需要如何部署,因为后脚本引用节点模块的凉亭安装。 我应该把我的bower_components包含在git仓库中吗? 这似乎并不像我应该因为不是后记的整个点执行凉亭安装在heroku上? 但是当我做我得到一个错误。 这里是我的鲍尔依赖: "dependencies": { "angular": "1.2.x", "angular-mocks": "~1.2.x", "jquery": "1.10.2", "bootstrap": "~3.1.1", "angular-bootstrap" : "0.11.0" } 和我的package.json { "main": "server.js", "engines": { "node": "0.10.29" }, "dependencies": { "express": "~3.4.x", "mongoose": "~3.6.x", "mongodb": "^1.4.0", "ejs": "*", "email-templates" : "1.0.0", "crypto": "0.0.3", "lodash": "~2.4.1", "aws-sdk": "2.0.0-rc11", "passport" : "~0.1.17", "passport-local" : […]

在heroku上运行每个cronjob的casperjs

我已经在casperjs中创build了一个从网站上下载体育数据的应用程序。 我想运行这个应用程序每个cronjob在heroku上,以保存在csv,数据库或外部的谷歌文档(还没有决定)的体育成绩。 不过,在我开始为heroku实施之前,我有一个问题: 我发现这个heroku buildpack ,声称它可以运行casperjs scirpts。 但是,我需要nodejs来运行脚本吗? 或者我可以在heroku上创build一个cronjob? 我真的很感激你的回复!

Heroku为node.js工作

我从Heroku开始,我有一个Web应用程序,有一部分,需要每周运行一次(星期一最好)。 我一直在读关于工人的东西: 在这里 , 在这里 , 在这里 …但我仍然有许多疑问: 1)这个工人在没有严格控制的背景下运行,不能按计划每周运行一次。 还是我错了? 如果我错了,我该如何安排呢? 2)为了使他们工作,我到底需要做什么? types web: node webApp.js worker: node worker.js 在Procfile中(其中worker.js是程序的一部分,每周只需运行一次)。 这就是全部? 没有其他的?? 太简单?? 3)最后一个…但最重要的。 “金钱的鳞次栉比”……一个工友和一个工人一样,所以如果你有一个工作站在网上,你需要为工人另外购买一个工具。 而在价格列表中,额外的代价是34.5 $(27.87€)。 它不便宜…所以我想知道我是否正确,如果你想要经营一个工人,是否有必要购买一台测功机?

无法使用“下划线”来使用parsing服务器

我刚刚迁移了一个分析服务器,除云代码之外,一切正常。 我已经了解到,这是因为在我的main.js中,我需要库“Underscore”。 这是我的云代码function: Parse.Cloud.define("ReadyUp", function(request, response) { var _ = require('underscore'); var fbid = request.user.get("fbid"); var query = new Parse.Query("Spel"); query.equalTo("lobby", fbid); query.find().then(function(results) { _.each(results, function(spel) { spel.addUnique("ready", fbid); }); return Parse.Object.saveAll(results); }).then(function(result) { response.success(result); }, function(error) { response.error(error); }); }); 代码在迁移之前没有任何错误。 我猜测的要求没有find正确的文件夹。 给你文件夹结构看起来像这样: Cloudcode位置:mainfolder-> cloud-> main.js 下划线库:mainfolder-> node_modules->下划线(文件夹) 代码是错误的还是文件夹的结构有问题? 提前致谢! /马丁

package.json适用于不同的环境?

我有一个node.js应用程序,我刚刚部署到Heroku取决于canvas模块。 但是,该模块需要开罗graphics库和长话短说,我需要使用一个precomipiled版本,这是包含在这个canvas的叉子 。 通常,我的package.json依赖关系如下所示: "dependencies" : { "canvas" : "0.10.0", "express" : "2.5.6", "jade" : "0.20.1" } 但为了让我的应用程序在Heroku上工作,我必须从github中取出叉子 "dependencies" : { "canvas" : "git://github.com/elspoono/node-canvas-heroku.git#master", "express" : "2.5.6", "jade" : "0.20.1" } 是否可以有一个“Heroku-only”版本的package.json? 还是有package.json中的另一个部分,我可以“覆盖”开发环境中的canvas依赖项?

代理服务器与Heroku上的Node.js

我正在尝试使用http-proxy在Heroku上使用Node.js构build代理服务器。 一切工作正常,但我在Heroku上遇到一些麻烦。 var http = require('http'); var httpProxy = require('http-proxy'); settings = { "localhost": process.env.LOCALHOST, "devices": process.env.DEVICES_URI } var options = { router: { } } options.router[settings.localhost + '/devices'] = settings.devices + '/devices'; var port = process.env.PORT || 8000; var server = httpProxy.createServer(options).listen(port); 正如您在示例中所见,我设置了一个路由对象。 我说的是这样的:当一个请求匹配'/ devices',然后将请求路由到设备服务。 (由DEVICES_URI环境variables识别) 在发展中,我设定了 LOCALHOST ='localhost' DEVICES_URI ='http:// localhost:3000' 这意味着所有到localhost:8000 / […]