Vamos a implementar el Contador de visitantes usando express y mongoose en nodeJS . El beneficio de usar mongoose para almacenar el conteo en la base de datos MongoDB sería que el conteo no se perdería cuando reiniciamos el servidor. Cada vez que el navegador obtenga esa página, el recuento de visitantes se incrementará en uno (1). Caminemos paso a paso.
Paso 1: Cree un archivo » app.js » e inicialice su proyecto con npm .
npm init
Paso 2: Instale express y mongoose usando npm
npm install express npm install mongoose
El paquete Express nos ayudaría a crear el servidor y definir las rutas para las requests GET . Mongoose es una biblioteca de modelado de datos de objetos para MongoDB y NodeJS, que nos ayudaría a hablar con nuestra base de datos MongoDB.
Estructura del proyecto: La estructura del proyecto se vería así:
Paso 3: comencemos a codificar el archivo » app.js «.
- Primero requiere expreso y mangosta
- Cree la conexión a la base de datos MongoDB local
- Defina el esquema de mangosta para almacenar los registros. Tiene dos campos, uno » nombre » del tipo de datos String y el otro » recuento » del tipo de datos Numérico .
- Cree el modelo de mangosta a partir del esquema
- Defina la solicitud GET raíz y haga que la aplicación escuche el puerto local.
La solicitud GET tiene un caso especial cuando se accede a la aplicación por primera vez. Para ese caso, necesitamos crear el registro predeterminado con el recuento de visitantes igual a 1 (uno). Para otras ocasiones, simplemente incremente su valor en uno.
Usamos la función findOne() de mangosta que toma un parámetro como condición de búsqueda. Devuelve el primer registro que coincide con nuestra condición. Si ningún registro coincide, devuelve un valor nulo . Ahora veamos el código completo del archivo “ app.js ”.
app.js
// Requiring express to handle routing const express = require('express') // Creating app const app = express() // Requiring mongoose to handle mongoDB Database const mongoose = require('mongoose') // Connecting to local MongoDB mongoose.connect("mongodb://localhost:27017/visitCounterDB", { useNewUrlParser: true }); // Creating visitor Schema to hold the // count of visitors const visitorSchema = new mongoose.Schema({ name: String, count: Number }) // Creating Visitor Table in visitCounterDB const Visitor = mongoose.model("Visitor",visitorSchema) // Get request to app root app.get('/', async function(req,res){ // Storing the records from the Visitor table let visitors = await Visitor.findOne({name: 'localhost'}) // If the app is being visited first // time, so no records if(visitors == null) { // Creating a new default record const beginCount = new Visitor({ name : 'localhost', count : 1 }) // Saving in the database beginCount.save() // Sending thee count of visitor to the browser res.send(`<h2>Counter: `+1+'</h2>') // Logging when the app is visited first time console.log("First visitor arrived") } else{ // Incrementing the count of visitor by 1 visitors.count += 1; // Saving to the database visitors.save() // Sending thee count of visitor to the browser res.send(`<h2>Counter: `+visitors.count+'</h2>') // Logging the visitor count in the console console.log("visitor arrived: ",visitors.count) } }) // Creating server to listen at localhost 3000 app.listen(3000,function(req,res){ // Logging when the server has started console.log("listening to server 3000") })
Paso 4: ahora ejecuta la aplicación
node app.js
Producción:Ahora cargue la aplicación en su navegador presionando http://localhost:3000
Después de cerrar el servidor y reiniciarlo nuevamente, cuando visitamos la página raíz, vimos que el conteo de visitantes se conserva y se incrementa en uno. Estamos registrando todos estos pasos en la consola también para verificar y comprender el resultado.
Publicación traducida automáticamente
Artículo escrito por devrajkumar1903 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA