首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Heroku上举帆应用程序失败

在Heroku上举帆应用程序失败
EN

Stack Overflow用户
提问于 2015-11-12 21:14:10
回答 3查看 308关注 0票数 1

我无法在Heroku上的生产环境中使用Sails应用程序来连接到mongolab。当在本地设置中运行时,这很好。Heroku日志显示了以下..。

代码语言:javascript
复制
`
/app/node_modules/mongodb/lib/server.js:235
        process.nextTick(function() { throw err; })
                                      ^
TypeError: Cannot read property 'close' of undefined
    at /app/node_modules/sails-mongo/lib/adapter.js:138:13
    at /app/node_modules/sails-mongo/node_modules/async/lib/async.js:187:20
    at /app/node_modules/sails-mongo/node_modules/async/lib/async.js:239:13
    at _arrayEach (/app/node_modules/sails-mongo/node_modules/async/lib/async.js:91:13)
    at _each (/app/node_modules/sails-mongo/node_modules/async/lib/async.js:82:13)
    at Object.async.forEachOf.async.eachOf (/app/node_modules/sails-mongo/node_modules/async/lib/async.js:238:9)
    at Object.async.forEach.async.each (/app/node_modules/sails-mongo/node_modules/async/lib/async.js:215:22)
    at Object.module.exports.adapter.teardown (/app/node_modules/sails-mongo/lib/adapter.js:137:22)
    at /app/node_modules/sails/lib/hooks/orm/index.js:244:19
    at /app/node_modules/async/lib/async.js:122:13
    at _each (/app/node_modules/async/lib/async.js:46:13)
    at Object.async.each (/app/node_modules/async/lib/async.js:121:9)
    at Sails.hook.teardown (/app/node_modules/sails/lib/hooks/orm/index.js:241:13)
    at Sails.g (events.js:260:16)
    at emitNone (events.js:67:13)
    at Sails.emit (events.js:166:7)
`

运行风帆0.11.2版

船帆-蒙戈版本0.11.4

添加和验证了process.env变量

connection.js

代码语言:javascript
复制
`
mongodb: {
  adapter: 'sails-mongo',
  url : process.env.CONNECTION_URL,
  host: process.env.DB_HOST,
  port: process.env.PORT_NR,
  user: proces.env.USER,
  password: process.env.PASSWORD,
  database: process.env.DB
},

env/production.js

代码语言:javascript
复制
`
connections : {
  mongoLive: {
    adapter: 'sails-mongo',
    url : process.env.CONNECTION_URL
  }
},
models: {
  connection: 'mongoLive'
},
`

development.js

代码语言:javascript
复制
`
connections : {
  mongoDev: {
    adapter: 'sails-mongo',
    host: 'localhost',
    port: 27017,
    database: 'threads_db'
  }
},

models: {
  connection: 'mongoDev'
}
`

Procfile

代码语言:javascript
复制
`
web: npm start
`

package.json

代码语言:javascript
复制
`
"scripts": {
  "debug": "node debug app.js",
  "start": "sails lift"
},
`

models.js已设置为

代码语言:javascript
复制
`
 connection: 'mongodb',
`

因此,对本地mongolab和远程mongolab的连接都可以在本地运行,但对Heroku的部署失败。让我看看我是不是错过了什么东西。对此表示感谢。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2015-11-15 13:28:26

我通过使用船帆-蒙戈的主版本来解决这个问题。

package.json

代码语言:javascript
复制
"sails": "git+https://github.com/balderdashy/sails.git"

然后,一旦部署到heroku,就会重新启动dyno

代码语言:javascript
复制
`heroku ps:scale web=1`
票数 0
EN

Stack Overflow用户

发布于 2015-11-12 22:44:31

已知的窃听器。查看https://github.com/balderdashy/sails-mongo/issues/352

您可能需要npm install sails-mongo#master --save,直到它发布。

票数 0
EN

Stack Overflow用户

发布于 2022-02-13 12:58:08

对于那些在heroku部署后被接受的答案不起作用的人,请尝试更改节点js、sails mongo版本以及sails和check。

在将版本更改为下面的版本后,它对我有效:

1.nodejs - 14.15.1

2.帆- ^1.5.2

3.帆-芒果- ^2.0.0

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33681479

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档