Как переместить документ из одного html в другой (MongoDB / Node.js) - PullRequest
1 голос
/ 09 апреля 2020

Я просто изучаю 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}} &nbsp / &nbsp {{type}} &nbsp/ &nbsp {{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

1 Ответ

0 голосов
/ 09 апреля 2020

Добавить новый маршрут как

router.get('/getRented', async (req, res) => {
    const todos = await Todo.find({rented:true})

    res.render('rented', {
    title: 'Rented Todos list',
    isIndex: true,
    todos
    })
})

router.post('/rented', async (req, res) => {
  //req.body.id
  //update this code by rented:true
})
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...