Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Mongoose Can't Connect Without Internet

I have my MongoDB server running on localhost:27017, and while I can usually run my Node.js app fine, when I disconnect from the internet Mongoose throws the error

Error: failed to connect to [localhost:27017]

Note that I can still connect to the MongoDB server from the Mongo shell client. Also, if I start up my app first and then lose internet connection, my app can access the database fine offline. So why can't it start up without internet?

EDIT: here is the error in full

events.js:85
      throw er; // Unhandled 'error' event
            ^
Error: failed to connect to [localhost:27017]
    at null.<anonymous> (<My App>\node_modules\mongoose\
node_modules\mongodb\lib\mongodb\connection\server.js:555:74)
    at emit (events.js:118:17)
    at null.<anonymous> (<My App>\node_modules\mongoose\
node_modules\mongodb\lib\mongodb\connection\connection_pool.js:156:15)
    at emit (events.js:110:17)
    at Socket.<anonymous> (<My App>\node_modules\mongoos
e\node_modules\mongodb\lib\mongodb\connection\connection.js:534:10)
    at Socket.emit (events.js:107:17)
    at net.js:923:16
    at process._tickCallback (node.js:355:11)
[nodemon] app crashed - waiting for file changes before starting...

Edit: wording

like image 346
woojoo666 Avatar asked Mar 21 '15 02:03

woojoo666


People also ask

Does MongoDB work without internet?

This app is also useable offline, if one or more users disconnects from the network, they still have a fully-functional app experience that saves changes locally and will sync changes bi-directionally when the network is restored.

Why is my MongoDB not connecting?

Ensure that your MongoDB instance is running: Compass must connect to a running MongoDB instance. Also check you have installed MongoDB and have a running mongod process. You should also check that the port where MongoDB is running matches the port you provide in the compass connect.

Can you use node js without internet?

Local npmjs repositoryHave a local or corporate npmjs repository is a way of installing node. js without internet access. To use a different repository add a . npmrc file to the root directory of the contract (so it's a peer of the package.


1 Answers

Use 127.0.0.1 instead of localhost. By turning off your wifi interface the OS is no longer able to resolve localhost.

like image 57
PeterVC Avatar answered Sep 21 '22 05:09

PeterVC