Как сохранить другие данные, когда id установлен в true при нажатии кнопки - PullRequest
0 голосов
/ 01 апреля 2019

Я не могу нормально сохранить переменные, состояние, когда булева переменная возвращена, установлено равным true при нажатии кнопки.

// api.js

 router.get('/return/:id?',(req,res)=>{
                    var id=req.params.id;
                    console.log(id);
                    bookissue.update({_id:id},{$set:{"isreturned":true}},(error,result)=>
                    { 
                        if(error){
                         console.log(error);
                         } 

                         console.log(bookissue.status);
                         var date1 = new Date();
                         console.log(date1);
//Another error is that bookissue.returndate is returning an invalid date message.
                         var date2 = bookissue.returndate;
                         console.log(bookissue.returndate);
                         var timeDiff = Math.abs(date2.getTime() - date1.getTime());
                         var diffDays = Math.ceil(timeDiff / (1000 * 3600 * 24));
                         console.log(diffDays);
                         if (diffDays !== 0) {
                           const res = 50;
                           this.fine = res + diffDays;
                         }

                         else {this.fine = 0; }
                         bookissue.fine=this.fine;
                        console.log(bookissue.fine);
                       });     
                    });    

1 Ответ

0 голосов
/ 01 апреля 2019

Когда вы обновляете свойство bookIssue, вам необходимо снова сохранить / обновить объект.

router.get('/return/:id?',(req,res)=>{
                    var id=req.params.id;
                    console.log(id);
                    bookissue.update({_id:id},{$set:{"isreturned":true}},(error,result)=>
                    { 
                        if(error){
                         console.log(error);
                         } 

                         console.log(bookissue.status);
                         var date1 = new Date();
                         console.log(date1);
//Another error is that bookissue.returndate is returning an invalid date message.
                         var date2 = bookissue.returndate;
                         console.log(bookissue.returndate);
                         var timeDiff = Math.abs(date2.getTime() - date1.getTime());
                         var diffDays = Math.ceil(timeDiff / (1000 * 3600 * 24));
                         console.log(diffDays);
                         if (diffDays !== 0) {
                           const res = 50;
                           this.fine = res + diffDays;
                         }

                         else {this.fine = 0; }
                         bookissue.fine=this.fine;
                         console.log(bookissue.fine);
                         bookissue.save((err, updatedBookIssue) => {
                            if (err) {
                                console.log(err);
                            } else {
                                console.log('Updated book issue');
                                console.log(updatedBookIssue);
                            }
                         });
                       });     
                    });

Проверьте указанный выше код.

После присвоения переменной fine я сновасохранить объект.

Я добавил следующий код, в конце вашего кода

bookissue.save((err, updatedBookIssue) => {
                            if (err) {
                                console.log(err);
                            } else {
                                console.log('Updated book issue');
                                console.log(updatedBookIssue);
                            }
                         });
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...