node.js - example - find mongodb nodejs
esquema inválido, mongodb esperado (6)
Soy nuevo en la creación de aplicaciones con MEAN Stack, estoy tratando de construir una aplicación de chat en tiempo real, aquí está mi servidor:
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);
});
});
});
Estoy seguro de que creé una base de datos llamada chat con mongodb, también mongo está esperando la conexión. Pero cuando ejecuto el servidor con node server.js se produce un error:
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>
Me habían bloqueado en esta fase durante semanas, cualquier ayuda, por favor.
A veces, el error puede estar en las comillas de las variables de entorno. Quítalos una vez y prueba. Podría ayudar.
El error podría estar con:
set DATABASE_URI=''mongodb://localhost:1000/my_app'' && node index.js
El comando correcto será:
set DATABASE_URI=mongodb://localhost:1000/my_app && node index.js
Esto se debe a que está utilizando la cadena de conexión en un formato incorrecto.
Está utilizando localhost:27017/db/chat
mientras que debería ser mongodb://localhost:27017/db/chat
El patrón para la cadena de conexión es mongodb://<HOSTNAME>:<PORT>/<DBNAME>
Artículo de referencia: https://mongodb.github.io/node-mongodb-native/api-generated/mongoclient.html#mongoclient-connect
Intenta esto, funciona:
mongoose.connect(''mongodb://localhost:27017/shopping'');
Puede parecer obvio, pero también encontrará este error cuando pase valores no válidos en general al cliente de Mongo, por ejemplo, undefined
. Me encontré con esto cuando estaba haciendo referencia a la clave incorrecta en un objeto de configuración.
Solo resolví el mismo problema. Las malditas ventanas guardan citas en el entorno.
Por lo tanto, si usa Windows y escribe de esta manera SET MONGO_URL="mongodb://localhost:27017/{name of your db}"
No es correcto.
La forma correcta es SET MONGO_URL=mongodb://localhost:27017/{name of your db}
sin comillas.
También descubrí que debes escribir el protocolo exactamente - mongodb. Hay un código que verifica el protocolo del archivo url_parser.js
var result = parser.parse(url, true);
if(result.protocol != ''mongodb:'') {
throw new Error(''invalid schema, expected mongodb'');
}
También tuve este problema y fue porque tenía el protocolo incorrecto:
mongo://localhost:27017/test
Si el protocolo es incorrecto también puede causar este error. Debería ser así:
mongodb://localhost:27017/test