node.js - Heroku 上的 mongodb (mongolab)。 'LoopBack connector "mongodb“未安装”

标签 node.js mongodb heroku

我有一个在本地运行良好的nodejs应用程序。它使用 mongodb。我想将其推送到 Heroku,所以我安装了 mongolab 插件,“heroku addons:open mongolab” 并像这样更新了 datasources.json 文件;

{
  "db": {
    "name": "db",
    "url": "mongodb://<user:<pwd>@ds037252.mongolab.com:37252/heroku_app37281512",
    "connector": "mongodb"
  }
}

当我将其推送到heroku时,它在启动时失败,并显示以下内容;

2015-05-29T04:25:39.953257+00:00 heroku[web.2]: Starting process with command node tk/server/server.js 2015-05-29T04:25:41.167153+00:00 app[web.2]: Detected 512 MB available memory, 512 MB limit per process (WEB_MEMORY) 2015-05-29T04:25:41.167177+00:00 app[web.2]: Recommending WEB_CONCURRENCY=1 2015-05-29T04:25:42.158058+00:00 app[web.2]: 2015-05-29T04:25:42.158064+00:00 app[web.2]: 2015-05-29T04:25:42.158063+00:00 app[web.2]: WARNING: LoopBack connector "mongodb" is not installed as any of the following modules: 2015-05-29T04:25:42.158066+00:00 app[web.2]: ./connectors/mongodb 2015-05-29T04:25:42.158068+00:00 app[web.2]: loopback-connector-mongodb 2015-05-29T04:25:42.158069+00:00 app[web.2]: 2015-05-29T04:25:42.158072+00:00 app[web.2]: 2015-05-29T04:25:42.158070+00:00 app[web.2]: To fix, run: 2015-05-29T04:25:42.158073+00:00 app[web.2]: npm install loopback-connector-mongodb

我该如何处理这个问题?我需要以某种方式修改 datasources.json 吗?
我使用的是 heroku 免费计划。也许它不包括 mongodb 访问?

提前致谢,瑞安

这是package.json;

{
  "name": "tk",
  "version": "1.0.0",
  "main": "server/server.js",
  "scripts": {
    "pretest": "jshint ."
  },
  "dependencies": {
    "compression": "^1.0.3",
    "cors": "^2.5.2",
    "errorhandler": "^1.1.1",
    "loopback": "^2.14.0",
    "loopback-boot": "^2.6.5",
    "loopback-datasource-juggler": "^2.19.0",
    "serve-favicon": "^2.0.1"
  },
  "optionalDependencies": {
    "loopback-explorer": "^1.1.0"
  },
  "devDependencies": {
    "jshint": "^2.5.6"
  },
  "repository": {
    "type": "",
    "url": ""
  },
  "description": "tk"
}

最佳答案

您的依赖项中缺少loopback-connector-mongodb

将 package.json 更改为(如果复制/粘贴,请删除我的评论!)

{
  "name": "tk",
  "version": "1.0.0",
  "main": "server/server.js",
  "scripts": {
    "pretest": "jshint ."
  },
  "dependencies": {
    "compression": "^1.0.3",
    "cors": "^2.5.2",
    "errorhandler": "^1.1.1",
    "loopback": "^2.14.0",
    "loopback-boot": "^2.6.5",
    "loopback-datasource-juggler": "^2.19.0",
    "loopback-connector-mongodb": "1.9.1", --note the addition of this line
    "serve-favicon": "^2.0.1"
  },
  "optionalDependencies": {
    "loopback-explorer": "^1.1.0"
  },
  "devDependencies": {
    "jshint": "^2.5.6"
  },
  "repository": {
    "type": "",
    "url": ""
  },
  "description": "tk"
}

注意- 您还可以使用 npm install loopback-connector-mongodb --save - 这将在本地安装包,并将依赖项保存到 package.json

关于node.js - Heroku 上的 mongodb (mongolab)。 'LoopBack connector "mongodb“未安装”,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30521597/

相关文章:

javascript - 将 mongo 数据库连接导出到 models.js 文件

javascript - node.js axios下载文件流和writeFile

node.js - Nodejs + Mongoose 的回调函数,如何只返回搜索值?

javascript - 为什么在 MongoDB 中显式 .open() 一个连接?

node.js - vue-cli-service : not found proplem on heroku? 如何解决

mysql - node.js Passport 用户模式手动设置

mongodb - 在 Laravel 之外 Eloquent 地使用 jenssegers/laravel-mongodb 多个数据库连接

python - Heroku 上的 Django 翻译无法完全正常工作

ruby-on-rails - 在 Heroku 的 paper_trail 中自动设置谁负责控制台的更改

django - django 1.6.1 中事务的奇怪行为