Articles of heroku

如何设置RedisStore – Node,Express,Socket.io,Heroku

我正在使用部署在Heroku上的Node&Express 4.0,并且试图将Redis的Socket.io作为一个会话存储来实现。 所以我有这个作为我现在的代码: var app = express(); var server = require('http').createServer(app); var io = require('socket.io').listen(server); var RedisStore = io.RedisStore; if (process.env.REDISTOGO_URL) { // inside if statement var rtg = require("url").parse(process.env.REDISTOGO_URL); var redis = require("redis").createClient(rtg.port, rtg.hostname); redis.auth(rtg.auth.split(":")[1]); } else { var redis = require("redis").createClient(); } /** Initialize RedisStore for socket.io **/ io.set('store', new RedisStore({ redis : […]

加快部署Heroku

Heroku太棒了 但每次我部署,Heroku似乎喜欢重新下载和重build所有的软件包。 使用socket.io和mailparser这需要大约3分钟。 有没有办法加快部署过程? 有没有办法告诉Heroku它可以caching这些项目? 或者我可以上传预build的node_modules ?

Express.jsredirect到HTTPS并发送index.html

我有一个简单的Express.js实例,为单个页面的Angular应用程序提供静态资源。 我在Expressconfiguration中设置了一些中间件,这样所有的路由都会返回index.html,Angular可以从那里加载。 最近,我在Heroku上设置了SSL,我想确保所有来自HTTP的stream量都被redirect到HTTPS。 我试图将这篇文章中的build议解决scheme与我现在所拥有的解决scheme结合起来,但最后却是无尽的redirect循环。 简而言之,我需要将所有stream量从HTTPredirect到HTTPS,并且需要为所有请求发送index.html文件。 我在这里做错了什么? var gzippo = require('gzippo'); var express = require('express'); var morgan = require('morgan'); var app = express(); // set environment variables var env = app.get('env') || 'development'; app.use(morgan('dev')); // serve static assets app.use(gzippo.staticGzip("" + __dirname + "/dist")); app.use("/js", express.static(__dirname + "/dist/scripts")); app.use("/fonts", express.static(__dirname + "/fonts")); app.use("/img", express.static(__dirname + "/dist/assets/images")); app.use("/css", […]

Socket.io + NodeJS在Heroku上不起作用

我正在做一个API,它在Heroku上。 但是,我只有在heroku端socket.io有一些问题,当我在本地testing一切顺利。 API是完全独立于前端,所以他们在不同的域(和不同的主机)。 问题是,在生产上,我没有成功地连接sockets… 我有一些问题,所有这些都是关于heroku上的socket.ioconfiguration。 我知道有一些关于这方面的信息的post,但我发现它的post是旧版本的sockets.io或旧版本的heroku(heroku似乎已经改变了过去七月的websockets的东西): 我不知道在heroku上运行socket.io之前是否需要激活一些东西。 我读了一些关于这方面的post,但似乎都是旧的…我试图激活Websockets: $ heroku labs:enable websockets但我得到的回应是: ! No such feature: websockets ! No such feature: websockets 。 我必须指定一个端口,或者Heroku有一个自动的端口吗? 我需要两个连接吗? 一个听POST / GET / PUT / DELETE和另一个sockets? app.js var express = require('express'); var app = module.exports = express(); var port = process.env.PORT || 5000; var port_s = 3000; var server […]

咕噜和凉亭heroku上

今天我想将我的node.js应用程序部署到heroku。 当地我正在使用bower和grunt发展也我想仍然使用它们。 现在,按照我在networking上发现的一些build议,我将bower添加到了我的dependencies并添加了"postinstall": "node_modules/.bin/bower install到我的package.json postinstall 。 现在我有一些grunt问题。 当我把我的grunt依赖从devDependencies移到dependencies , grunt不能识别我的tasks ,例如当我有 { "name": "js-linkedin-connector", "version": "0.1.0", "dependencies": { "passport": "~0.1.17", "passport-local": "~0.1.6", "passport-linkedin-oauth2": "~1.0.1", "connect": "~2.11.0", "underscore": "~1.5.2", "bower": "1.2.x", "grunt": "~0.4.1", "grunt-cli": "0.1.11", "load-grunt-tasks": "~0.1.0", "grunt-contrib-copy": "~0.4.1", "grunt-contrib-concat": "~0.3.0", "grunt-contrib-coffee": "~0.7.0", "grunt-contrib-uglify": "~0.2.0", "grunt-contrib-compass": "~0.5.0", "grunt-contrib-jshint": "~0.6.0", "grunt-contrib-cssmin": "~0.6.0", "grunt-contrib-connect": "~0.5.0", "grunt-contrib-clean": "~0.5.0", […]

如何使用heroku + node.js + express设置安全Cookie?

我有一个node.js应用程序在雪松堆栈上运行,我很困惑为什么安全cookie不起作用。 "express": "3.0.3", "node": ">=0.8.14", … app.use(express.session({ secret : 'somesecret', store : // store works fine, sessions are stored key : 'sid', cookie : { secure : true, // it works without the secure flag (cookie is set) proxy : true, // tried using this as well, no difference maxAge: 5184000000 // 2 months } […]

使用Redis Cloud和Heroku正确configuration节点会话存储

目前还不清楚使用Redis Cloud和Heroku的正确configuration参数是什么,并且在线找不到function实例。 这是我现在的代码: const express = require('express') const session = require('express-session') const RedisStore = require('connect-redis')(session); … const server = express() server.use(bodyParser.json()) server.use(bodyParser.urlencoded({ extended: false })) server.use(cookieParser()) server.use(session({ secret: token_secret, // create new redis store. store: new RedisStore({ url: 'redis://rediscloud:…@…redislabs.com:11111'}), resave: true, saveUninitialized: true })); 如果Redis Cloud和Heroku作为会话存储(使用快速会话),是否应该将resave和saveUnitialized设置为true或false? 此外,cookieParser会影响会话,需要在那里? 或者是单独parsing来自客户端的cookie,而与Redis的服务器端会话存储无关? 另外,如果cookieparsing器有一个秘密传递给函数? 最后,bodyParser应该在server.use(session)之前还是之后,并且应该将urlencoded extended设置为true或false?

端口超时部署环回应用程序到Heroku

我部署了一个Loopback应用程序Heroku,但它不断崩溃的错误 Web process failed to bind to $PORT within 60 seconds of launch 我知道它可以连接到Heroku的dynamic端口,所以我把我的端口设置为一个进程的环境 app.start = function () { // start the web server var port = process.env.PORT || 3000; app.set('port', port); app.use(loopback.static(path.resolve(__dirname, '../client'))); app.use(loopback.static(path.resolve(__dirname, '../.tmp'))); return app.listen(function () { app.emit('started'); console.log('Web server listening at: %s', app.get('url')); }); }; 但是这并没有解决这个问题。 任何想法?

在Heroku上为新的Firebase设置ElasticSearch上的Flashlight

我的目标是将Firebase与ElasticSearch连接起来,以便在iOS应用中search用户名时可以实现“like”查询。 从我读到的这个是最好的解决scheme,我想早点解决这个问题,以便可扩展而不是蛮横的。 为了实现这一点,我试图将Firebase开发人员为我们提供的手电筒应用程序部署到Heroku上,但是我很困惑如何去做。 请纠正我错在哪里,我对Heroku生态系统,ElasticSearch和nodejs相当陌生。 我目前有一个Heroku账户,并且在我的电脑(Mac)上安装了toolbelt和nodejs / npm。 我运行了以下命令: git clone https://github.com/firebase/flashlight cd flashlight heroku login heroku create heroku addons:add bonsai heroku config (我能用heroku config命令成功获得我的盆景url) 下一步是 heroku config:set FB_NAME=<instance> FB_TOKEN="<token>" 但是我不太了解FB_NAME(我的猜测是Firebase应用程序名称,不过是应用程序名称,还是由于新的Firebase安装程序不再是app_name.firebaseio.com , app_name-abc123.firebaseio.com )和什么是FB_TOKEN? (是我下载的plist中的一个关键或东西?)

使用GitLab连续部署NodeJS

我有一个在.gitlab-ci.yml开发的API,通过.gitlab-ci.yml文件成功build立了持续集成。 如果所有的testing都通过了主分支,下一个阶段是build立到Heroku的连续部署。 有大量的教程涵盖了Ruby和Python应用程序的部署,但NodeJS上没有任何内容。 目前我的.gitlab-ci.yml文件如下所示: image: node:latest job1: script: "ls -l" test: script: "npm install;npm test" production: type: deploy script: – npm install – npm start – gem install dpl – dpl –provider=heroku –app=my-first-nodejs –api-key=XXXXXXXXXX only: – master Ruby和Python教程使用dpl工具进行部署,但是如何在部署后在服务器上启动NodeJS脚本? 添加生产部分并推送之后,testing运行并通过,但部署阶段陷入挂起状态。 控制台是空白的。 有没有人为NodeJS设置了一个成功的CD脚本?