繁体   English   中英

连接错误(err)-在ExpressJS框架中使用Node.js进行Mongodb连接

[英]Connection Error (err) - Mongodb connection using nodejs in an expressjs framework

我现在正在接受关于nodejs的培训,以及如何使用nodejs和expressjs作为框架开发MVC应用程序的培训。 我有一个TDD方法,以及与TDD测试脚本一起编写的Model和View类。 我有一个mongodb测试脚本,它失败并显示以下错误消息:

expressjs_multech_project mul$ jasmine-node ./tests
.......F

Failures:

  1) MongoDB is there a server running?
   Message:
     Expected {  } to be null.
   Stacktrace:
     Error: Expected {  } to be null.
    at /Users/.../expressjs_multech_project/tests/mongodb.spec.js:6:19
    at /Users/.../expressjs_multech_project/node_modules/mongodb/lib/mongodb/mongo_client.js:334:20
    at /Users/.../expressjs_multech_project/node_modules/mongodb/lib/mongodb/db.js:258:16
    at null.<anonymous> (/Users/.../expressjs_multech_project/node_modules/mongodb/lib/mongodb/connection/server.js:621:7)
    at emitThree (events.js:110:13)
    at emit (events.js:188:7)
    at null.<anonymous> (/Users/.../expressjs_multech_project/node_modules/mongodb/lib/mongodb/connection/connection_pool.js:139:15)
    at emitTwo (events.js:100:13)

Finished in 0.182 seconds
8 tests, 18 assertions, 1 failure, 0 skipped

我使用Jasmine作为节点作为测试包,其他所有测试仅通过编写模型和视图类即可通过。 我不明白为什么我的mongodb TDD脚本在mongodb上失败,并且当我npm start ,它没有开始返回以下app.js错误消息:

> node app.js

Sorry, the server (mongodb) is not running

我研究了堆栈跟踪,从我看到的结果来看,mongodb没有建立任何连接,它的返回值为null。 我检查了mongodb以确保其存在:

Johns-MacBook-Pro:expressjs_multech_project mul$ npm list mongodb
multechanalytics@0.0.1 /Users/.../expressjs_multech_project
└── mongodb@1.3.10 

我已经尝试过分配补救措施,但到目前为止没有任何效果。 关于解决与服务器的连接问题的任何想法,以便我可以继续进行此expressjs MVC培训项目?

我的config / index.js看起来像这样:

var config = {
    local: {
      mode: 'local',
      port: 3000,
      mongo: {
        host: '127.0.0.1',
        port: 27017
      }
    },
    staging: {
      mode: 'staging',
      port: 4000,
      mongo: {
        host: '127.0.0.1',
        port: 27017
      }
    },
    production: {
      mode: 'production',
      port: 5000,
      mongo: {
        host: '127.0.0.1',
        port: 27017
      }
    }
}
module.exports = function(mode) {
  //export module configuration making it available to all files in folder
  return config[mode || process.argv[2] || 'local'] || config.local;

这是我扩充package.json文件并npm install mongodb --save时得到的输出-保存以在npm install之后运行install mongo

muls-MacBook-Pro:expressjs_multech_project jmulhall$ npm install mongodb --save

> kerberos@0.0.11 install /Users/jmulhall/Documents/Web_Development/Express-Nodejs/expressjs_multech_project/node_modules/kerberos
> (node-gyp rebuild 2> builderror.log) || (exit 0)

  CXX(target) Release/obj.target/kerberos/lib/kerberos.o

> bson@0.2.22 install /Users/jmulhall/Documents/Web_Development/Express-Nodejs/expressjs_multech_project/node_modules/bson
> (node-gyp rebuild 2> builderror.log) || (exit 0)

  CXX(target) Release/obj.target/bson/ext/bson.o
multechanalytics@0.0.1 /Users/jmulhall/Documents/Web_Development/Express-Nodejs/expressjs_multech_project
├─┬ less-middleware@0.1.12
│ └─┬ less@1.4.2
│   └─┬ request@2.69.0
│     └─┬ bl@1.0.3
│       └─┬ readable-stream@2.0.6 
│         └── isarray@1.0.0 
└─┬ mongodb@1.4.40 
  ├─┬ bson@0.2.22 
  │ └── nan@1.8.4 
  ├── kerberos@0.0.11 
  └─┬ readable-stream@2.0.6 
    └── isarray@1.0.0 

谢谢...

这看起来像安装时的错误,因为组件返回的exit 0 ,这很好。

为了清楚起见,尽管您正在安装的软件包只是官方的mongodb驱动程序https://www.npmjs.com/package/mongodb - The official MongoDB driver for Node.js. Provides a high-level API on top of mongodb-core that is meant for end users. https://www.npmjs.com/package/mongodb - The official MongoDB driver for Node.js. Provides a high-level API on top of mongodb-core that is meant for end users.

您需要安装mongodb服务器才能完整安装https://docs.mongodb.org/manual/installation/

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM