Я просто изучаю mongodb и node.js, и я столкнулся с проблемой. Мне нужно написать запрос, чтобы при нажатии на кнопку «Аренда» документ перемещался в аренду и исчезал из доступных. Как мне это реализовать?
Извините, если это глупый вопрос.
app
Схема:
const { Schema, model } = require('mongoose')
const schema = new Schema({
title: {
type: String,
required: true
},
type: {
type: String,
default: false
},
price: {
type: Number,
default: false
}
})
module.exports = model('Rent', schema)
html из доступных:
<div class="rent__title">
<img src="https://emojio.ru/images/apple-b/1f6b2.png" alt="">
<h2 id="rh">Available bicycles </h2>
</div>
<div class="rent__list">
{{#if rents.length}}
<ul class="ul">
{{#each rents}}
<li class="rent">
<form action="/rented" method="POST">
<label>
{{#if completed}}
<span class="aval">{{title}}   /   {{type}}  /   {{price}}</span>
{{/if}}
<input type="hidden" value="{{_id}}" name="id">
<span class="rent__buttons">
<button formaction="/rented" class="btn b1" >Rent</button>
<button formaction="/delete" class="btn b2" >Delete</button>
</span>
</label>
</form>
</li>
{{/each}}
</ul>
{{else}}
<p>No rent!</p>
{{/if}}
</div>
маршруты:
const { Router } = require('express')
const Todo = require('../models/Todo')
const Rented = require('../models/Todo')
const router = Router()
router.get('/', async (req, res) => {
const todos = await Todo.find({})
res.render('index', {
title: 'Todos list',
isIndex: true,
todos
})
})
router.get('/create', (req, res) => {
res.render('create', {
title: 'Create new rent',
type: 'Choose type',
price: '$',
status: 'false',
isCreate: true
})
})
router.post('/create', async (req, res) => {
const todo = new Todo({
title: req.body.title,
type: req.body.type,
price: req.body.price
})
await todo.save()
res.redirect('/')
})
router.post('/rented', async (req, res) => {
const rent = await Todo.findById(req.body.id)
rent.rented = !!req.body.rented
await rent.save()
res.redirect('/')
})
router.post('/delete', async (req, res) => {
const todo = await Todo.findByIdAndRemove(req.body.id)
await todo.save()
res.redirect('/')
});
module.exports = router