Articles of heroku

使用Express 4路由器无法获取Content-Type标头

我试图返回不同的内容,基于请求中的Content-Type头:纯文本或JSON对象。 在Express 3.x中,我使用了req.accepted('application/json')来查明用户是否要求使用JSON。 但req.accepted()在4.x中已被弃用。 我试过req.is() – 返回undefined ,而req.accepts() – 没用。 最后,我诉诸于: var router = require('express').Router(); router.get('/ping', function(req, res) { var serverTime = (new Date()).toLocaleString(); if(req.get('Content-Type').indexOf('json') !== -1) { res.set({'Content-Type': 'application/json'}); res.send({serverTime: serverTime}); } else { res.send('serverTime: ' + serverTime); } }); 这在localhost(用CURLtesting)上效果很好,但是一旦我部署到Heroku,我得到: TypeError: Cannot call method 'indexOf' of undefined at Object.router.get.res.set.Content-Type [as handle] 如何获得Express 4中的标题types,并正确处理? […]

编译期间NODE_ENV的解决方法

我遇到了一个N​​PM安装后脚本的问题,问题是构build过程忽略了configuration的NODE_ENV(通过cctrlapp x/y config.add ),并始终默认为production 。 对于我所看到的, 两个月前Heroku解决了这个问题。 从这个问题来看,它似乎应该是透明的。 有什么我必须做的在构build过程中访问我的ENVvariables? 任何解决方法? 谢谢!

当版本与父模块相同时,节点不会安装子模块依赖项

通常情况下,我可以在Google上发现任何我遇到的问题,但在这种情况下,我绝对不知道要search什么。 我的父模块有两个依赖关系: "grunt-contrib-uglify": "~0.2.7" "node-snapshot": "~0.3.22" 但是,当node-snapshot也依赖于~0.2.7 ,它不会安装在node-snapshot的node_modules目录中。 我的Snapshot应用程序通过Travis自动部署到Heroku,因此具有: "scripts": { "test": "grunt test", "start": "node example/server/default.js", "postinstall": "node_modules/grunt-cli/bin/grunt build:production" } 在将它安装到父模块( npm install node-snapshot )之后,也会调用它,但是由于父项和子项均依赖于grunt-contrib-uglify ~0.2.7 : >> Local Npm module "grunt-contrib-uglify" not found. Is it installed? Warning: Task "uglify" not found. Use –force to continue. 如果父模块依赖于不同版本的grunt-contrib-uglify则node-snapshot将在其node_modules目录中成功安装grunt-contrib-uglify node_modules并且所有内容都是有争议的。 我将如何去解决这个问题? 很明显,所有的孩子都需要自己的安装,即使父母有相同的模块,因为相对的,子模块( node-snapshot )无法find它的一个依赖关系。

Node.js主机瓦特/多个端口,或错误的做法?

我试图找出最佳的工作stream程来生成一个我可以在各种公共节点环境中托pipe的应用程序。 这个关键点似乎是我的应用程序打开了两个端口:一个用于HTTP,另一个用于WebSockets。 这里是在我自己的系统上执行很好的代码,但是在托pipe服务上遇到EADDRINUSE错误。 (注意:无论端口号如何变化) 代码: http : //pastebin.com/zjJKbj2U 问题:我在寻找提供这种能力的Node服务的方法上错了吗?还是应该以不同的方式来解决这个问题?

由于Expressjs中间件而导致分析服务器性能不佳:jsonParser

我的一个Parse Server云functionperformance非常差,我希望有人能帮助我指出正确的方向,开始debugging我能解决这个问题的原因。 我使用New Relic APM做了一个函数的事务跟踪,除了罪魁祸首(看起来像是“Expressjs Middleware:jsonParser”),大概需要37,700毫秒才能完成。 有谁知道什么样的操作可能会造成这种情况,我该如何去修复它? 我的猜测是有一个巨大的JSON对象传递或closures,但我仍然是所有这些Web服务器的东西,所以想我会得到第二个意见,谢谢! 🙂 事务跟踪

如何使用NodeJS将Postgres数据库迁移到heroku?

使用Ruby,迁移只使用rake命令,但是在NodeJS中,我不知道我该怎么做。 任何想法?

我如何在heroku上设置一个节点应用程序(ember app kit)来读取ENVvariables,并使值可用于应用程序?

好吧,我是新来的节点,真的只是使用节点服务器来服务静态js,但我无法find任何地方的任何信息。 我正在运行一个应用程序应用程序套件 ,它被构build到一个节点server.js进行部署,而heroku则通过node server.js运行它。 它使用grunt来build造,testing等 我想知道如何指定可以被herokuconfigurationvariables覆盖的configurationvariables(即authentication令牌)。 最近我已经能够得到一个自定义的任务,读取环境variables,并写出一个json文件内置到网站(并分配给全局variables)。 这在本地工作,但不考虑herokuconfiguration。 我甚至写了一个部署脚本来获取heroku的configuration文件,将它们作为环境variables导出到本地,然后执行构build – 这是可行的,但configuration只会在应用程序部署中更新。 所以,如果我做一个heroku config:add CONFIG_TEST=test_value ,我的应用程序不会看到CONFIG_TEST值,直到下次我部署应用程序。 我想让我的应用程序立即开始在浏览器JS中embedded该configuration值。 任何方式来做到这一点与我的应用程序设置的方式吗?

在集合中设置TTL索引时出错:Session

我知道这个问题有很多话题,但是其中的任何一个解决了我的问题。 我实际上是试图在Heroku上部署我的项目,这对我来说是个新东西。 我的项目是基于连接到MongoDB数据库的Express API的node.js。 当我用我的数据库在本地启动它(没有login名/密码),我没有这个错误,但是当我连接到heroku数据库时,我得到一个: Error: Error setting TTL index on collection : Session <MongoError: not authorized for query on app17713548.system.indexes> 我的package.json "dependencies": { "express": "3.0.6", "mongodb": "1.3.19", "mongoskin": "0.5.0", "MD5": "1.0.3", "connect-session": "*", "connect-mongo": "0.3.3", "geoip-lite": "1.0.10" }, "engines": { "node": "0.8.19", "npm": "1.1.65" } 而为了连接到我的数据库我使用MongoSkin和行是: mongo.db(conf.dbLogin+':'+conf.dbPassword+'@'+conf.dbAddr+':'+conf.dbPort+'/'+conf.dbName+'?auto_reconnect=true', {w: 1}); 任何帮助将非常感激!

Heroku和Socket.io,400错误的请求和很多断开连接

所以我有一个应用程序在socket.io上工作,我试图让它在Heroku上工作,但有严重的问题得到它运行。 在控制台日志和chrome控制台中,每隔一秒左右就有一堆断开连接。 在Chrome控制台中,我一直收到400个错误的请求。 https://appname.herokuapp.com/socket.io/?api_key=xxx&EIO=3&transport=polling&t=1424782938420-1&sid=hcTvjdxYePd4kNS5AAAe Failed to load resource: the server responded with a status of 400 (Bad Request) disconnect WebSocket connection to 'wss://appname.herokuapp.com/socket.io/?api_key=xxx=3&transport=websocket&sid=hcTvjdxYePd4kNS5AAAe' failed: WebSocket is closed before the connection is established. 所以在我的server.js var cluster = require('cluster'); var app = require('express')(); var http = require('http').Server(app); var io = require('socket.io')(http); var redis = require('redis'); var redisAdapter […]

你需要ssl连接mongolab和heroku吗?

将数据从heroku应用程序发送到免费的MongoDB数据库是否安全? 数据可能像电子邮件和偏好。 或者你需要ssl,我已经读过关于mongodb的ssl。 我问过周围,但找不到任何具体的蒙古包。