I seem to have issues when trying to create a mongoose connection. I am following a book published in 2014 so my immediate response was to check the mongoose docs but they agree that the book gives the correct format. Below is my connection:
var dbURI = 'mongodb://localhost/Loc8r';
mongoose.connect(dbURI);
As soon as I add these lines, I get the following error:
Mongoose connection error: mongodb://127.0.0.1/Loc8r
(node:743) UnhandledPromiseRejectionWarning: Unhandled promise rejection (rejection id: 1): MongoNetworkError: failed to connect to server [127.0.0.1:27017] on first connect [MongoNetworkError: connect ECONNREFUSED 127.0.0.1:27017]
(node:743) [DEP0018] DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code.
If I remove the connection, I have no errors...but that would defeat the purpose of trying to connect to a DB. I also tried substituting localhost
in the URI for 127.0.0.1
which is known to solve some issues but I had no luck there either. I am running the localhost
on a simple $nodemon
command via terminal and nothing else.
Useful info:
Help would be appreciated.
Thanks.
try this way
var MongoClient = require('mongodb').MongoClient
, assert = require('assert');
// Connection URL
var url = 'mongodb://localhost:27017/myproject';
// Use connect method to connect to the server
MongoClient.connect(url, function(err, db) {
assert.equal(null, err);
console.log("Connected successfully to server");
db.close();
});
You are going on the right path but you forgot to put the port on which MongoDB runs, MongoDB runs on the port 27017
Do not forget to start MongoDB server, If you are on mac
open terminal and enter mongod
and it will start your MongoDB server then run your code it will work fine.
var dbURI = 'mongodb://localhost:27017/Loc8r';
mongoose.connect(dbURI);
mongoose.connection.on("connected", () => {
console.log("Connected to database");
});
mongoose.connection.on("error", (err) => {
console.log("Database error:" + err);
});
I apologise for this as I was able to find the solution myself but I guess this may help others some day.
The fault lay with the fact that I only installed MongoDB via Homebrew and I stopped as soon as MongoDB was literally "installed" and considered MongoDB to be "installed". I went back to look at how MongoDB should properly be installed and I noticed that I did not make the directory /data/db
and give it its permissions which was an important step.
Once I did this, I ran mongod
globally, and nodemon
on a separate terminal, locally at the root of the app and it worked completely fine and got a successful message in the console. Every time I tried to connect, it was searching for /data/db
which it obviously could not find as I had not made it. But I would not have came to this conclusion if Nikhil had not mentioned running mongod
.
To summarise, ensure you follow all installing steps in future.
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.