Here is the error message which i got while trying to run the project using gulp. I guess the problem is caused because of mongodb.
Gulp is running my app on PORT: 8000
events.js:160
throw er; // Unhandled 'error' event
^
MongoError: failed to connect to server [localhost:27017] on first connect
[MongoError: connect ECONNREFUSED 127.0.0.1:27017]
at Pool.<anonymous> (C:\Users\H SHASHANK
KUMAR\Desktop\code\node_modules\mongodb-core\lib\topologies\server.js:336:35)
at emitOne (events.js:96:13)
at Pool.emit (events.js:188:7)
at Connection.<anonymous> (C:\Users\H SHASHANK KUMAR\Desktop\code\node_modules\mongodb-core\lib\connection\pool.js:280:12)
at Connection.g (events.js:292:16)
at emitTwo (events.js:106:13)
at Connection.emit (events.js:191:7)
at Socket.<anonymous> (C:\Users\H SHASHANK
KUMAR\Desktop\code\node_modules\mongodb-
core\lib\connection\connection.js:187:49)
at Socket.g (events.js:292:16)
at emitOne (events.js:96:13)
at Socket.emit (events.js:188:7)
at emitErrorNT (net.js:1277:8)
at _combinedTickCallback (internal/process/next_tick.js:80:11)
at process._tickCallback (internal/process/next_tick.js:104:9)
Below is the code which may contain the error.
var express = require('express')
mongoose = require('mongoose'); // creating reference for express
var db = mongoose.connect('mongodb://localhost/bookAPI'); //using mongoose
to connect to mongo db.
var Book = require('./models/bookModel'); //mongo db uees models to retrive
data.
var app = express(); // creating an instance of express to run app.
var port = process.env.PORT || 3000;
var bookRouter = express.Router();
bookRouter.route('/Books')
.get(function(req, res){
Book.find(function(err, books){
if(err)
console.log(err);
else
res.json(books);
});
});
app.use('/api', bookRouter);
app.get('/', function(req, res){
res.send('welcome to my API');
});
app.listen(port, function(){
console.log('Gulp is running my app on PORT: '+port);
});
I have tried searching for the error in other possible post on stack overflow but i didn't find any fix for my problem.
Related
Trying to connect to the mongodb free database on mongodb-atlas
I've almost tried everything Checked the docs, Changed the url, Changing password and even deleted the user and created the new one but still not resolve the problem
here is myurl.js file
module.exports = {
mongoURL: "mongodb+srv://nansDB:nansDB123#nodecluster-qs6cv.mongodb.net/test?retryWrites=true&w=majority",
secret: "mystrongsecret"
}
here is my index.js file
const express = require('express');
const mongoose = require('mongoose');
const app = express();
//mongodb Configuration
const db = require('./setup/myurl').mongoURL;
//attempt to connect to database
mongoose.connect(db, { useNewUrlParser: true })
.then(()=> console.log('MongoDb Connect successfully'))
.catch(err => console.log(err));
const port = process.env.PORT || 3000;
here are the error lines I'm getting whenever I tried to run
{ MongoNetworkError: failed to connect to server [nodecluster-shard-00-02-qs6cv.mongodb.net:27017] on first connect [MongoNetworkError: connection 5 to nodecluster-shard-00-02-qs6cv.mongodb.net:27017 closed]
at Pool.<anonymous> (D:\nodejsProject\bigStack\node_modules\mongodb-core\lib\topologies\server.js:431:11)
at Pool.emit (events.js:189:13)
at connect (D:\nodejsProject\bigStack\node_modules\mongodb-core\lib\connection\pool.js:557:14)
at callback (D:\nodejsProject\bigStack\node_modules\mongodb-core\lib\connection\connect.js:109:5)
at runCommand (D:\nodejsProject\bigStack\node_modules\mongodb-core\lib\connection\connect.js:129:7)
at Connection.errorHandler (D:\nodejsProject\bigStack\node_modules\mongodb-core\lib\connection\connect.js:321:5)
at Object.onceWrapper (events.js:277:13)
at Connection.emit (events.js:189:13)
at TLSSocket.<anonymous> (D:\nodejsProject\bigStack\node_modules\mongodb-core\lib\connection\connection.js:350:12)
at Object.onceWrapper (events.js:277:13)
at TLSSocket.emit (events.js:189:13)
at _handle.close (net.js:597:12)
at TCP.done (_tls_wrap.js:388:7)
name: 'MongoNetworkError',
errorLabels: [ 'TransientTransactionError' ],
[Symbol(mongoErrorContextSymbol)]: {} }
Its solved actually my whitelisted ip was changed because of connection issue [reconnecting to wifi]. Although my suggestion is checked whether the ip you whitelisted is exists or not.
I am not able to solve the mongodb connection problem. I am getting the error below on starting node app.
Here is my mongoose connection code.
var mongoose = require('mongoose');
mongoose.Promise = global.Promise;
mongoose.connect(process.env.MONGODB_URI || 'mongodb://127.0.0.1:27017/ml').then(
() => { console.log('Connected to mongodb!') },
err => { console.log('Failed to connect to mongodb'); console.log(err); }
);
module.exports = {mongoose};
Here is the error.
Started up at port 80
Failed to connect to mongodb
{ MongoNetworkError: failed to connect to server [10.160.0.2:27017] on first connect [MongoNetworkError: connect ECONNREFUSED 10.160.0.2:27017]
at Pool.<anonymous> (/home/shivamsharma_btp2/mlsever/magguland/node_modules/mongodb-core/lib/topologies/server.js:564:11)
at Pool.emit (events.js:189:13)
at Connection.<anonymous> (/home/shivamsharma_btp2/mlsever/magguland/node_modules/mongodb-core/lib/connection/pool.js:317:12)
at Object.onceWrapper (events.js:277:13)
at Connection.emit (events.js:189:13)
at Socket.<anonymous> (/home/shivamsharma_btp2/mlsever/magguland/node_modules/mongodb-core/lib/connection/connection.js:246:50)
at Object.onceWrapper (events.js:277:13)
at Socket.emit (events.js:189:13)
at emitErrorNT (internal/streams/destroy.js:82:8)
at emitErrorAndCloseNT (internal/streams/destroy.js:50:3)
at process._tickCallback (internal/process/next_tick.js:63:19)
name: 'MongoNetworkError',
errorLabels: [ 'TransientTransactionError' ],
[Symbol(mongoErrorContextSymbol)]: {} }
Here are firewall rules of my google cloud app.
Got solution!
Use sudo before the command to start server.
I'm trying to create a simple rest API with a mongodb.
I have a server.js file
const express = require('express');
const mongoose = require('mongoose');
const bodyParser = require('body-Parser');
const app = express();
app.use(bodyParser.json());
const db = require('./config/keys').mongoURI;
mongoose
.connect('mongodb://test:test123#ds241012.mlab.com:41012/mern_shopping')
.then(() => console.log('DB Connected'))
.catch(err => console.log(err));
const port = process.env.PORT || 5000;
app.listen(port, () => console.log('Server started'));
I'm using nodemon
When I run npm run server I get the following error
(node:65209) DeprecationWarning: current URL string parser is deprecated, and will be removed in a future version. To use the new parser, pass option { useNewUrlParser: true } to MongoClient.connect.
then I got error in console
failed to connect to server
How do I fix this
Update
With {useNewUrlParser: true} the server starts but if I touch the server.js file I get this.
Server started
{ MongoNetworkError: failed to connect to server [ds241012.mlab.com:41012] on first connect [MongoNetworkError: connection 0 to ds241012.mlab.com:41012 timed out]
at Pool.<anonymous> (/Users/test/Documents/_Work/cd/React/mern-shopping-list/node_modules/mongodb-core/lib/topologies/server.js:564:11)
at emitOne (events.js:116:13)
at Pool.emit (events.js:211:7)
at Connection.<anonymous> (/Users/test/Documents/_Work/cd/React/mern-shopping-list/node_modules/mongodb-core/lib/connection/pool.js:317:12)
at Object.onceWrapper (events.js:317:30)
at emitTwo (events.js:126:13)
at Connection.emit (events.js:214:7)
at Socket.<anonymous> (/Users/test/Documents/_Work/cd/React/mern-shopping-list/node_modules/mongodb-core/lib/connection/connection.js:257:10)
at Object.onceWrapper (events.js:313:30)
at emitNone (events.js:106:13)
at Socket.emit (events.js:208:7)
at Socket._onTimeout (net.js:420:8)
at ontimeout (timers.js:482:11)
at tryOnTimeout (timers.js:317:5)
at Timer.listOnTimeout (timers.js:277:5)
name: 'MongoNetworkError',
errorLabels: [ 'TransientTransactionError' ],
[Symbol(mongoErrorContextSymbol)]: {} }
I am creating a simple server using nodejs, expressJs and mongodb
here is server.js
const express = require('express');
const MongoClient = require('mongodb').MongoClient;
const bodyParser = require('body-parser');
const db = require('./config/db');
const app = express();
const port = 8000;
app.use(bodyParser.urlencoded({ extended: true }));
MongoClient.connect(db.url, (err, database) => {
if (err) return console.log(err)
require('./app/routes')(app, database);
app.listen(port, () => {
console.log('We are live on ' + port);
});
})
Note: database info are all okay,
when i run node server.js , i get the following error :
C:\Users\Bonge\Documents\Projects\movies_database>node server.js
{ MongoError: Authentication failed.
at Function.MongoError.create (C:\Users\Bonge\Documents\Projects\movies_database\node_modules\mongodb-core\lib\error.js:31:11)
at C:\Users\Bonge\Documents\Projects\movies_database\node_modules\mongodb-core\lib\connection\pool.js:497:72
at authenticateStragglers (C:\Users\Bonge\Documents\Projects\movies_database\node_modules\mongodb-core\lib\connection\pool.js:443:16)
at Connection.messageHandler (C:\Users\Bonge\Documents\Projects\movies_database\node_modules\mongodb-core\lib\connection\pool.js:477:5)
at Socket.<anonymous> (C:\Users\Bonge\Documents\Projects\movies_database\node_modules\mongodb-core\lib\connection\connection.js:331:22)
at emitOne (events.js:116:13)
at Socket.emit (events.js:211:7)
at addChunk (_stream_readable.js:263:12)
at readableAddChunk (_stream_readable.js:250:11)
at Socket.Readable.push (_stream_readable.js:208:10)
name: 'MongoError',
message: 'Authentication failed.',
ok: 0,
errmsg: 'Authentication failed.',
code: 18,
codeName: 'AuthenticationFailed' }
what is wrong with my code?
i found solution just created new database and new user and everything okay now
Sails server:
Windows 10 64-bit
Sails.js 1.0.0-36
Node.js 6.10.2
MongoDB server:
Centos 7 on Virtualbox, host networking only
Mongodb 3.4.4, listening to all interfaces, no auth configured
I can successfully lift Sails, connect the datastore, and use the models without any problem.
However, this test will result on a timeout:
let mongo = require('mongodb');
let uri = 'mongodb://' + process.env.MONGO_SERVER + ':' + process.env.MONGO_PORT + '/sails';
mongo.MongoClient.connect(uri, function(err, db) {
if(err){
return res.serverError(err);
}
return res.json("open");
});
{ MongoError: failed to connect to server [192.168.99.2:27027] on first connect [MongoError: connect ETIMEDOUT 192.168.99.2:27027]
at Pool.<anonymous> (....\node_modules\mongodb-core\lib\topologies\server.js:329:35)
at emitOne (events.js:96:13)
at Pool.emit (events.js:188:7)
at Connection.<anonymous> (....\node_modules\mongodb-core\lib\connection\pool.js:280:12)
at Connection.g (events.js:291:16)
at emitTwo (events.js:106:13)
at Connection.emit (events.js:191:7)
at Socket.<anonymous> (....\node_modules\mongodb-core\lib\connection\connection.js:187:49)
at Socket.g (events.js:291:16)
at emitOne (events.js:96:13)
at Socket.emit (events.js:188:7)
at emitErrorNT (net.js:1281:8)
at _combinedTickCallback (internal/process/next_tick.js:80:11)
at process._tickDomainCallback (internal/process/next_tick.js:128:9)
name: 'MongoError',
message: 'failed to connect to server [192.168.99.2:27027] on first connect [MongoError: connect ETIMEDOUT 192.168.99.2:27027]' }
I am using the exact same server information used on the datastore.
So what could be wrong here?
And as important: is it possible to use the global Sails connection pool instead of creating a new connection? How? I have searched the documentation but cannot find specific references.
Code was wrong -- using port 27027, while it should be 27017.
Datastore connection worked because of a correct fallback I didn't notice
Try this
var MongoClient = require('mongodb').MongoClient;
MongoClient.connect("mongodb://localhost:27017/test", function(err, db) {
test.equal(null, err);
test.ok(db != null);
});
Ref : here