Я делаю систему голосования, по щелчку стрелки вверх, я хочу захватить _id, а затем я хочу передать этот _id в мою функцию upvote. Ниже моя функция upvote, которая работает с почтальоном.
const db = require('./../helpers/db');
const {ObjectId} = require('mongodb');
module.exports = {
// Get this user id and update code below, also figure out best way to get game id that has been clicked on, maybe assigning that to an id in the html?
upvote: function(req, res, next){
let userId = db.get().collection('users').findOne({"_id": ObjectId("5b6a39ff17e9af6c20b9c5a8")});
let gameId = db.get().collection('matches').findOne({"_id": ObjectId("5b7b67247a3b516f8cb0c7d9")});
userId.then(function(upvotedata){
if(upvotedata){
db.get().collection('matches').updateOne({"_id": ObjectId("5b7b67247a3b516f8cb0c7d9")}, { "$inc": { "currentvote": 1}});
res.status(200).json();
} else {
return res.sendStatus(400);
}
});
gameId.then(function(game){
if(game){
} else {
return res.sendStatus(400);
}
});
},
Мои маршруты здесь:
const auth = require('./../../middleware/auth');
const votingController = require('./../../controllers/voting');
module.exports = function(app, passport, config) {
app.post('/api/upvote', votingController.upvote);
app.post('/api/downvote', votingController.downvote);
// app.get('/api/users/:userId', usersController.getById);
И некоторые из моих HTML здесь:
<div class="col-lg-12">
<div class="row">
<div action="/api/upvote" method="post" id="super1"><i id="super" class="fas fa-chevron-circle-up color-gray upvote {{topmatch.ID}}"></i></div>
<div class="margin-left"><i onclick="upvote()" id="super" class="fas fa-chevron-circle-down color-gray downvote {{topmatch.ID}}"></i></div>
<div class="margin-left"><p class="vote-number" id="green">{{topmatch.currentvote}}</p></div>
</div>
</div>
Итак, я хочу нажать на «супер» id, в основном передать _id из класса в функцию upvote. Как я могу сделать это правильно? Это действительно тяжело для меня.