Как ссылаться на другой метод действия put в том же файле контроллера?

1

мой проект включает в себя две модели - "Пользователь и запрос", где пользователь может создать запрос на доставку еды и прикреплять токены в качестве награды, в то время как другой пользователь может помочь доставить и потребовать токены.

В том же файле controller.js у меня есть метод transferTokens (put action) и другой метод delete (delete action). Мой вопрос: как я могу вызвать метод удаления в конце transferTokens? Я разделяю оба метода, так как бывают случаи, когда пользователь может удалять свои собственные запросы без какой-либо передачи токена (то есть до того, как любой другой пользователь согласится передать этот запрос).

Код:

let controller = {
  transferTokens: (req, res) => {
   // Request.findOne({ _id: req.params.id }) 
   // ...
   // User.findOneAndUpdate...
   // ... add tokens to user-helper
   // controller.delete();
  },
  delete: (req,res) => {
   // Request.findOneAndRemove
   // ...
   // res.redirect('/home');
  }
}
module.exports = controller

Итак, это определенно неправильно. Запрос удаляется, но сообщение об ошибке является res undefined. Обычно пользователь нажимает кнопку "Удалить" в представлении, но в этом случае пользователь-помощник нажимает кнопку "Идентификаторы требований", которая инициирует действие transferTokens.

edit: Мне удалось найти выход с помощью app.set

app.set('res', res); controller.delete(req, app.get('res'))

Теги:
express

1 ответ

0

//просьба уточнить более четко

transferTokens :function(req,res){
   var model = req.allParams();

   Request
   .findOne({ _id: req.params.id })
   .exec(function(err,request){
      if(err) err

      if(request){

        //in this you should match any condition with your another table
        // so supose we have User table
        var userFilter ={
         id :request.id(as ur key)
        }

        User
        .findOne(userFilter)
        .exec(function(err,user){
           if(err) return err

           if(user){
             user.destroy(function (err) {
                                if (err) return res.toJson(false, [], "Error.");

                                return res.toJson(true, user, "Sucess.");
                            });
           }
        })

      }
      else{
        return  empty
      }
   })
}

Ещё вопросы

Сообщество Overcoder
Наверх
Меню