Привет.
Пытаюсь разобраться в Node.js, для этого пишу серверное приложение - Web API.
В обработчиках запросов сейчас встречается такая конструкция:
create(req, res, next) {
crypt('PASSWORD').hash(function(err, hash) {
if (err) {
next("ERROR!");
// ! Здесь нужно завершить дальнейшее выполнение ф-ии create()
}
var newUser = new users.User();
newUser.save(function (err) {
if (err) {
next("ERROR!");
// ! Здесь нужно завершить дальнейшее выполнение ф-ии create()
} else {
res.send("User has been saved!");
}
})
});
},
Вижу следующие проблемы:
1. Необходимо завершить функцию create из колбеков (см. комментарии в коде), как это сделать - не понимаю.
2. Слишком большой уровень вложенности. Как его можно уменьшить?
Хотелось бы видеть что-нибудь в этом роде:
create(req, res, next) {
var _hash = '';
crypt('psw').hash(hash => {
if (hash) {
_hash = hash;
}
}
users.User().save(err => {
// Do something..
}
}
Про замыкания и асинхронную работу читал, но код правильно организовать не получается.
Прошу вашей помощи. Спасибо.