Как реализовать запрос на обновление, при котором не требуется знать идентификатор записи в базе данных mongodb - PullRequest
0 голосов
/ 19 мая 2019

Я хочу отправить запрос остальным API с именем записи вместо идентификатора.

Это форма, которую пользователь заполняет, чтобы обновить информацию о наличии свободных билетов.

<div>
                    <form onSubmit={this.handleSubmit}>
                        <label className="label">Enter the train</label>
                        <input type="text" ref="name" placeholder="name" className="inputBox"/>

                        <label className="label">Enter the no of tickets</label>
                        <input type="text" ref="tickets" placeholder="no of tickets" className="inputBox"/>

                        <input type="submit" value="BOOK" className="button"/>
                    </form>


                    <input type="submit" value="Show all trains" className="button" onClick={this.showAlltrains}/>

                    <input type="submit" value="Add a train" className="button" />
                    <br/><br/><br/><br/>

                    <table className="table-show-all-trains">
                        {trains}
                    </table>
                </div>

Это метод, который я реализовал для отправки запроса пут на остальные API и передачи имени на остальные API для идентификации записи Certian.

handleSubmit: function (event) {
            event.preventDefault();
           var name = this.refs.name.value;
           var noOfTickets = this.refs.tickets.value;

            var data = {"name": name, "noOfTickets": noOfTickets};

            fetch('/api/trains/' + name{
                method : "PUT",
                body : JSON.stringify(data),
                headers: {'Content-type' : 'application/json'}
            }).then(function (data) {
                    return data.json();
                }).then(json => {
                    this.setState({
                        trains :json
                    });
            });
         },

Это фрагмент кода внутри API остальных, который обрабатывает запросы на размещение.

router.put('/trains/:name', function(req, res, next){
Train.findByIdAndUpdate({name: req.params.name}, req.body).then(function(){
    Train.findOne({name: req.params.name}).then(function (train) {
        res.send(train);
        })
    })
});

Когда я использую идентификатор для идентификации записи, приложение работает. Но неудобно, когда пользователь вводит идентификатор для идентификации определенной записи.

Итак, я получаю имя записи от пользователя, и мне нужно идентифицировать запись в базе данных, передавая этому пользователю введенное имя записи вместо идентификатора.

...