Conectando a Mongosse

Necesitamos obtener la cadena de conexión de nuestra base de datos alojada en MongoDB Atlas y para eso vamos hacer los siguientes pasos:

  1. En el cluster creado con anterioridad, damos click en el botón CONNET.

  2. Una vez en el modal, damos click sobre el enlace Connect your Application.

  3. Se desplegara la información, correspondiente a nuestra cadena de conexión, copiamos la linea de tu cluster que sera similar a esta. mongodb+srv://admin:<password>@cluster0-ddb2f.mongodb.net/test?retryWrites=true&w=majority

En el archivo archivo app.jsagregamos las siguientes lineas para generar la conexión a nuestra base de datos.

app.js
const mongoose = require('mongoose');

const config = require('./config/environment');

// Connect to MongoDB
mongoose.connect(config.mongo.uri, { useNewUrlParser: true });
mongoose.connection.on('error', (err) => {
  console.error('Error', 'MongoDB connection error', {
    data: err,
    time: new Date().toISOString(),
  });
  process.exit(-1);
});

Finalmente nuestro archivo app.js debe quedar similar a este:

app.js
/**
 * Main application file
 * @author: Cristian Moreno Zulauaga <khriztianmoreno@gmail.com>
 */

const express = require('express');
const http = require('http');
const mongoose = require('mongoose');

const expressConfig = require('./config/express');
const routeConfig = require('./routes');
// New line
const config = require('./config/environment');

// Connect to MongoDB
mongoose.connect(config.mongo.uri, { useNewUrlParser: true });
mongoose.connection.on('error', (err) => {
  console.error('Error', 'MongoDB connection error', {
    data: err,
    time: new Date().toISOString(),
  });
  process.exit(-1);
});

const app = express();
const server = http.createServer(app);

expressConfig(app);
routeConfig(app);

// Start server
function startServer() {
  app.shoppingCartBK = server.listen(config.port, config.ip, () => {
    console.log(`Express server listening on ${config.port}, in ${app.get('env')} mode`);
  });
}

setImmediate(startServer);

// Expose app
module.exports = app;

Adicional necesitamos un archivo de configuración para nuestros ambientes de desarrollo, dentro de la carpeta config/environmentcreamos el archivo index.js con las siguientes lineas de codigo.

config/environment/index.js
/**
 * Default specific configuration
 * @author: Cristian Moreno Zulauaga <khriztianmoreno@gmail.com>
 */

const all = {
  env: process.env.NODE_ENV,

  // Server port
  port: process.env.PORT || 8080,

  // Server IP
  ip: process.env.IP || '127.0.0.1',

  // Should we populate the DB with sample data?
  seedDB: false,

  // Secret for session, you will want to change this and make it an environment variable
  secrets: {
    session: 'w0rksh0p-full5tack-j4v45cr1pt',
  },

  // MongoDB connection options
  mongo: {
    uri: process.env.MONGODB_URI || 'mongodb+srv://admin:<password>@cluster0-ddb2f.mongodb.net/test?retryWrites=true&w=majority',
    db: 'workshop-fullstack-js',
  },
};

module.exports = all;

Nota: En la linea 25 debemos agregar nuestra cadena de conexión obtenida anteriormente.

Con estas configuraciones al levantar nuestro servidor, tendremos creado nuestros esquemas en MongoDB Atlas, listos para ser utilizados.

Last updated

Was this helpful?