Я создаю приложение для голосования, используя стек MERN.Я использую мангуст и экспресс для базы данных и бэк-энда.
Это моя схема Мангуста:
const mongoose = require("mongoose");
const Schema = mongoose.Schema;
//create a schema
const CarrozaSchema = Schema({
nombre: {
type: String
},
curso: {
type: String
},
votos: Number
});
module.exports = Carroza = mongoose.model("carroza", CarrozaSchema);
, и это маршрут, который управляет голосованием:
const express = require("express");
const router = express.Router();
const mongoose = require("mongoose");
//Carroza model
const Carroza = require("../../models/Carroza");
// @route POST api/votos
// @desc Realizar el voto
// @access public
router.post("/", (req, res) => {
Carroza.findOne({ nombre: req.body.nombre })
.then(carroza => {
if (!carroza) {
return res.status(404).json(req.body);
}
carroza.votos = carroza.votos + 1; //Here is where the votes are update
carroza.save();
res.status(200).json(req.body);
})
.catch(err => res.status(404).json(err));
});
module.exports = router;
В клиентской части есть списокиз "carrozas" с кнопкой, чтобы добавить голосование на тот, который они выбирают. это то, что видит пользователь Проблема в том, что если два пользователя одновременно голосуют за одну и ту же "морковь", добавляется только один голос.