Как функция может влиять на поток вызывающей стороны без условной проверки в вызывающей программе / функции - PullRequest
0 голосов
/ 29 апреля 2018

Я пишу приложение для экспресс-узлов, которое также использует контроллеры, а также Sequelize ORM (но вопрос также может быть применен к Mongoose / Mongo). В моем userController в методе обновления я сначала проверяю, существует ли пользователь, и если нет, я продолжаю обновлять запись.

// userController.js

// Import user from user model
import User from './Models/user';

// import function to check if user exist
import UserExists from './helpers/util';

class userController {
  static updateUser (req, res) {
// Find if user exist
 if (UserExists) {
  return res.status(400).json({ message: 'User already exist'});
  }  
  // else do something here i can try to do it if i like
} 



// helpers/util.js
import User from ./Models/user

export.userExists = (valueTobePassed) {
 User.find({
// find uere here
  }).then((user) => {
  if(!user) {
    return false;
  }
  return true
 });

}

Мой вопрос заключается в том, как мне написать код таким образом, чтобы мне не нужно было проверять if (userExists) и возвращать res.status (404) .json () в вызывающую функцию, поскольку это также быть реализован в User.delete. и вызовет повторяющиеся коды

Как это можно реализовать в .helpers / utils.js таким образом, что если пользователь не найден. оператор return автоматически влияет на метод updateUser userController без необходимости проверять, является ли UserExist === true

например

class UserController {
  userExists(req.params.userId) // should check here itself and return user does not exist
}
...