привет всем, я просто хочу знать, что код внутри *** делает здесь cz, даже если я не напишу, что все равно получаю свой результат?
Например, представьте, что нам нужна информация о пользователе на странице профиля пользователя. (/ v1 / users / azat определяется как / v1 / users /: имя пользователя) и на странице администратора (/ v1 / admin / azat определяется как / v1 / admin /: имя пользователя). Один из способов сделать это - определить функция, которая ищет информацию о пользователе (findUserByUsername) и вызывает эту функцию дважды внутри каждого из маршрутов. Вот как мы можем это реализовать (пример ch4 / app.js):
var users = {
'azat': {
email: '[email protected]',
website: 'http://azat.co',
blog: 'http://webapplog.com'
}
};
***var findUserByUsername = function (username, callback) {
// Perform database query that calls callback when it's done
// This is our fake database
if (!users[username])
return callback(new Error(
'No user matching '
+ username
)
);
return callback(null, users[username]);
};***
app.get('/v1/users/:username', function(request, response, next) {
var username = request.params.username;
findUserByUsername(username, function(error, user) {
if (error) return next(error);
return response.render('user', user);
});
});
app.get('/v1/admin/:username', function(request, response, next) {
var username = request.params.username;
findUserByUsername(username, function(error, user) {
if (error) return next(error);
return response.render('admin', user);
});
});
@ R.Sarkar, я имел в виду, что даже если я удаляю функцию, я все равно получаю ожидаемый результат ... и что я хочу знать, это то, что делает эта функция?
Функция findUserByName принимает два параметра, второй - это функция callBack. В зависимости от значения функции обратного вызова пользователя вызывается либо с ошибкой, либо с результатом. возврат не требуется нигде в вашем коде. Если вы удалите определение функции, вы получите сообщение об ошибке. Надеюсь, это вам поможет.





что вы имеете в виду, говоря не писать функцию findUserByUsername?