Workshop Fullstack Javascript
  • Bienvenid@s 👨🏼‍💻👩🏻‍💻
  • Prerequisitos 💻🔧
  • Backend
    • Introducción
      • Configuración Inicial
    • Node.js
    • Express.js
      • Configuración
      • Carpeta API
      • Rutas
    • Mongoose.js
      • Conectando a Mongosse
      • Esquemas y Modelos
      • Métodos
      • Rutas
      • Retos 🕵🏻‍♀️ 💻 🕵🏻‍♂️
    • Passport.js
      • Modelo User
      • Estrategia Local
      • Autenticación Service
      • API users
      • Configuración Passport.js
      • Middleware
      • Retos 🦸🏻‍♀️🕵🏼‍♂️
    • Refactor
    • Despliegue 🚀
  • Frontend
    • ReactJS 💙
      • Configuración Inicial
      • Componentes
      • Pages
      • Rutas
      • Conectando la API
      • Authenticación
      • Despliegue 🚀
    • VueJS 💚
      • Configuración Inicial
  • GraphQL
    • pronto...🤷🏼‍♂️
Powered by GitBook
On this page

Was this helpful?

  1. Backend
  2. Mongoose.js

Conectando a Mongosse

PreviousMongoose.jsNextEsquemas y Modelos

Last updated 5 years ago

Was this helpful?

Necesitamos obtener la cadena de conexión de nuestra base de datos alojada en 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 , listos para ser utilizados.

MongoDB Atlas
MongoDB Atlas