이 질문은 Node.js를 사용하는 10gen MongoDB 클래스의 숙제 질문에서 비롯된 것입니다. 그러나 관계를 설명하기보다는 숙제 (Mongo에 관한 부분)를 풀어 줄 것을 요청하지는 않습니다. 두 함수 사이. session.js 파일에서,이 방법 addUser
는 데이터 오브젝트 모듈 사용자에서이node.js의 콜백 사이의 관계
users.addUser(username, password, email, function(err, user) {
"use strict";
if (err) {
// this was a duplicate
if (err.code == '11000') {
errors['username_error'] = "Username already in use. Please choose another";
return res.render("signup", errors);
}
// this was a different error
else {
return next(err);
}
}
sessions.startSession(user['_id'], function(err, session_id) {
"use strict";
if (err) return next(err);
res.cookie('session', session_id);
return res.redirect('/welcome');
});
});
같은 users
데이터 오브젝트 모듈이라고합니다, 우리는있어이
this.addUser = function(username, password, email, callback) {
"use strict";
// Generate password hash
var salt = bcrypt.genSaltSync();
var password_hash = bcrypt.hashSync(password, salt);
// Create user document
var user = {'_id': username, 'password': password_hash};
// Add email if set
if (email != "") {
user['email'] = email;
}
//node convention first arg to call back error, 2nd the actual data we're returning, callbackwith value if added user
// look in session.js file that uses the UsersDAO to get a sense of how this is being used and
// what type of callback is passed in.Task is to fill in code to add a user when one tries to signup
// TODO: hw2.3
callback(Error("addUser Not Yet Implemented!"), null);
}
같은 기능 this.addUser
있다 mongo 데이터베이스에 사용자 추가를 가능하게하는 콜백을 구현해야합니다. 나에게 그렇게 말하지 않을거야. 오히려 users.addUser 함수의 네 번째 인수는 콜백 함수 function(err, user) { }
입니다. 또한 this.addUser
함수는 네 번째 매개 변수로 callback
을 가지므로 users.addUser
의 콜백 함수가 this.addUser?
에서 실행됩니다.이 두 함수의 관계를 명확히 할 수 있습니까? 나는 기능이 완료되면 콜백이 실행되는 것을 알고 있지만, 정확히 무슨 일이 일어나고 있는지 this.addUser
이 코드는 this.addUser에 전달되어 사용자가 원하는대로 성공 또는 오류를 처리 할 수 있습니다. –
실제로 콜백을 구현하지 않습니다. 콜백이 주어졌습니다.그것은 session.js 스 니펫'function (err, user) {..}'에 있습니다. 사용자는 DB에 사용자를 넣고 오류를 반환합니다. addUser의 마지막 줄에는'콜백 (callback) '이 주어지면 실행됩니다. 콜백 서명이 어떻게 생겼는지 어떻게 알 수 있습니까? 우리가 session.js에서 기대하는 것을 보아서. 희망이 도움이 될까요? – Tony