He estado siguiendo un curso de Udemy para aprender mongodb, y dado que el tutor usa un ide basado en la nube (cloud9), también he decidido usar el mismo. Sin embargo, dado que cloud9 ahora requiere una cuenta de AWS, pensé en usar CodeSandbox. Pero no puedo entender cómo iniciar el servidor Mongo en él. Después de instalar tanto Mongod como MongoDB, si intento ejecutar app.js, me da un error:
(node:1297) UnhandledPromiseRejectionWarning: MongoNetworkError: failed to connect to server [localhost:27017] on firstconnect [MongoNetworkError: connect ECONNREFUSED 127.0.0.1:27017]
at Pool.<anonymous> (/sandbox/node_modules/mongodb/lib/core/topologies/server.js:433:11)
at Pool.emit (events.js:198:13)
at createConnection (/sandbox/node_modules/mongodb/lib/core/connection/pool.js:577:14)
at connect (/sandbox/node_modules/mongodb/lib/core/connection/pool.js:1007:11)
at makeConnection (/sandbox/node_modules/mongodb/lib/core/connection/connect.js:31:7)
at callback (/sandbox/node_modules/mongodb/lib/core/connection/connect.js:247:5)
at Socket.err (/sandbox/node_modules/mongodb/lib/core/connection/connect.js:276:7)
at Object.onceWrapper (events.js:286:20)
at Socket.emit (events.js:198:13)
at emitErrorNT (internal/streams/destroy.js:91:8)
at emitErrorAndCloseNT (internal/streams/destroy.js:59:3)
at process._tickCallback (internal/process/next_tick.js:63:19)
(node:1297) UnhandledPromiseRejectionWarning: Unhandled promise rejection. Thiserror originated either by throwing inside of an async function without a catchblock, or by rejecting a promise which was not handled with .catch(). (rejection id: 1)
(node:1297) [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.
Si trato de correr mongod, dice
mongod: command not found
Este es mi app.js
var express = require("express");
var app = express();
var bodyParser = require("body-parser");
var mongoose = require("mongoose");
mongoose.connect("mongodb://localhost/yelp_camp");
Intenté instalar mongo y mongod usando la interfaz de usuario de codesandbox, usando la terminal (npm install) y haciendo lo que dicen los documentos de cloud9 (sé que no debería funcionar, pero no puedo encontrar ninguna documentación de Codesandbox)
¿Es posible hacer esto en codesandbox o tendré que usar MongoAtlas? ¡Gracias por adelantado!
2 respuestas
Creo que no hay alojamiento de bases de datos en CodeSandbox, por lo que debe usar un servicio externo.
Algunos servicios que puede usar:
- MLab (plan gratuito)
- ObjectRocket (prueba gratuita)
- Compose (prueba gratuita)
- Atlas mongodb
Ejemplo de MLab
- Configurar una base de datos en MLab
- Copie y pegue la cadena de conexión
Una función de ejemplo simple sería:
let initMongo = async () => {
try {
await mongoose.connect(
"mongodb://<dbuser>:<dbpassword>@ds123456.mlab.com:49878/testdatabase",
{
useNewUrlParser: true,
useUnifiedTopology: true
}
);
return console.log("Database connected!");
} catch (e) {
return console.log("Database error!", e.message);
}
};
Aquí está la documentación de CodeSandbox.
CodeSandbox tiene un iniciador para conectarse a MongoDB alojado como Atlas: consulte https: // codesandbox .io / s / mongodb-database-example-starter-v3ker
Preguntas relacionadas
Nuevas preguntas
node.js
Node.js es un tiempo de ejecución de E / S asíncrono, sin bloqueo y basado en eventos que utiliza el motor JavaScript V8 de Google y la biblioteca libuv. Se utiliza para desarrollar aplicaciones que hacen un uso intensivo de la capacidad de ejecutar JavaScript tanto en el cliente como en el lado del servidor y, por lo tanto, se benefician de la reutilización del código y la falta de cambio de contexto.