0

Im training right now in nodejs and how to develop MVC applications using nodejs and expressjs as a framework. I have a TDD approach along with the Model and View classes written along with TDD test scripts. I have a mongodb test script and it fails with the the following error message:

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

Im using Jasmine for node as a test package and all other tests pass with just the model and view classes written. I don't understand why my mongodb TDD script fails on mongodb and when I npm start, it does not start returning the app.js error message of:

> node app.js

Sorry, the server (mongodb) is not running

I researched back the stack trace and from what I can see, there is no connection been made with mongodb and its returning null. I checked mongodb to make sure its there:

Johns-MacBook-Pro:expressjs_multech_project mul$ npm list mongodb
[email protected] /Users/.../expressjs_multech_project
└── [email protected] 

I have tried allot of remedies but nothing to date is working. Any ideas on resolving the connection issue with the server so I can proceed with this expressjs MVC training project?

my config/index.js looks like this:

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;

Here is the ouputs I got when I augmented the package.json file and npm install mongodb --save to run the install mongo after npm install

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

> [email protected] 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

> [email protected] 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
[email protected] /Users/jmulhall/Documents/Web_Development/Express-Nodejs/expressjs_multech_project
├─┬ [email protected]
│ └─┬ [email protected]
│   └─┬ [email protected]
│     └─┬ [email protected]
│       └─┬ [email protected] 
│         └── [email protected] 
└─┬ [email protected] 
  ├─┬ [email protected] 
  │ └── [email protected] 
  ├── [email protected] 
  └─┬ [email protected] 
    └── [email protected] 

Thanks...

11
  • Hi John It's not clear from the info if you have validated that your mongo server is up. Are you running mongodb locally or from a service provider? Commented Mar 21, 2016 at 17:03
  • Hi 9, its running locally at 127.0.0.1:27017 Commented Mar 21, 2016 at 17:14
  • 9, I have ran npm start and its failed to launch, that is the basis of my validation of mongdb server validation. Commented Mar 21, 2016 at 17:16
  • Ok but the node library doesn't think mongo is up and running. When you run 'mongo' the command line client installed with mongodb what do you get? Commented Mar 21, 2016 at 17:20
  • 9, I get nothing... nothing for mongd, mongodb or any other iteration you can think of with "mongo" in it Commented Mar 21, 2016 at 17:21

1 Answer 1

1

That doesn't look like an error from install as the components return exit 0 which is fine.

To be clear though the package you are installing is only the official mongodb driver 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.

You need to install the mongodb server to have a full install https://docs.mongodb.org/manual/installation/

Sign up to request clarification or add additional context in comments.

2 Comments

Great stuff Number 9... I got it fixed.. but not after learning loads about mongodb and its installation. Im a brew fan but this time round the extras on brew seem to be causing more bad installs.
I found a very clear installation blog article and followed it and its now working on my local machine (Mac OSX 10.11.4). I also ran the TDD tests again on my MVC app and its passed all tests including the mongodb test script I checked about a thousand times yesterday! The link to the blog/tutorial for manual installs is mkyong.com/mongodb/how-to-install-mongodb-on-mac-os-x ... I would say that I find nano easier then vim so I used nano to update my bash_profile. The manual installation worked a charm. Thank you sir for all your help and inputs... you are a king amongst men!!...

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.