Necesitamos obtener la cadena de conexión de nuestra base de datos alojada en MongoDB Atlas y para eso vamos hacer los siguientes pasos:
En el cluster creado con anterioridad, damos click en el botón CONNET.
Una vez en el modal, damos click sobre el enlace Connect your Application.
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.
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.