I'm new in building application with MEAN Stack, I'm trying to build a real time chat app, here is my server side :
console.log("Server running...!");
var mongo=require('mongodb').MongoClient;
var client=require('socket.io').listen(8080).sockets;
mongo.connect('localhost:27017/db/chat',function(err,db){
if(err) throw err;
client.on('connection',function(socket){
console.log('someone has connected !');
//waiting for input
socket.on('input',function(data){
console.log(data);
});
});
});
I am sure that i created a data base called chat with mongodb, also mongo is waiting for connection. But when i run the server with node server.js an error occurs :
Server running...!
C:\Users\azus\Desktop\Psirt\codemaster\node_modules\ mongodb\lib\url_parser.js:20
throw new Error('invalid schema, expected mongodb');
^
Error: invalid schema, expected mongodb
at module.exports (C:\Users\azus\Desktop\Psirt\code-master\node_modules\mong
odb\lib\url_parser.js:20:11)
at connect (C:\Users\azus\Desktop\Psirt\code-master\node_modules\mongodb\lib
\mongo_client.js:125:16)
at Function.MongoClient.connect (C:\Users\azus\Desktop\Psirt\code-master\nod
e_modules\mongodb\lib\mongo_client.js:109:3)
at Object.<anonymous> (C:\Users\azus\Desktop\Psirt\code-master\server.js:6:8
)
at Module._compile (module.js:413:34)
at Object.Module._extensions..js (module.js:422:10)
at Module.load (module.js:357:32)
at Function.Module._load (module.js:314:12)
at Function.Module.runMain (module.js:447:10)
at startup (node.js:139:18)
C:\Users\azus\Desktop\Psirt\code-master>
I had been blocked at this phase for weeks , any help please
Just figured out the same problem. Damned windows save quotes in environment.
So if you use windows and wrote this way
SET MONGO_URL="mongodb://localhost:27017/{name of your db}"
It is not correct.Correct way is
SET MONGO_URL=mongodb://localhost:27017/{name of your db}
without quotes.Also i discovered that you must write protocol exactly - mongodb. There is code what check the protocol from file url_parser.js
Sometimes, error might be with the quotes around environment variables. Remove them once and try. Might help.
Error might be with :
Correct command will be:
Try this, it works:
I just had this issue as well and it was because I had the protocol wrong:
The protocol being wrong can also cause this error. It should be like this:
This is because you are using the connection string in an improper format.
You are using
localhost:27017/db/chat
while it should bemongodb://localhost:27017/db/chat
The pattern for the connection string is
mongodb://<HOSTNAME>:<PORT>/<DBNAME>
Article for reference: https://mongodb.github.io/node-mongodb-native/api-generated/mongoclient.html#mongoclient-connect
Might seem obvious, but you'll also encounter this error when you pass invalid values in general to the mongo client, e.g.
undefined
. Ran into this when I was referencing the wrong key on a config object.