Я пишу приложение для экспресс-узлов, которое также использует контроллеры, а также 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
}