创建用户,回调
Create user, callback
第一 post。我是一名学习 js 的学生,遇到了一个回调问题,我不确定如何正确构造它。
var bcrypt = require('bcrypt-nodejs');
var users = db.collection("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;
}
// NOT SURE What to write here
callback(Error("addUser Not Yet Implemented!"), null);
}
首先:尽可能不要使用同步方法,而是使用回调。
var bcrypt = require('bcrypt-nodejs');
var users = db.collection("users");
this.addUser = function(username, password, email, callback) {
"use strict";
// Generate password hash
bcrypt.genSalt(function(err, salt) {
if (err) {
callback(err);
return;
}
bcrypt.hash(password, salt, function(err, password_hash) {
if (err) {
callback(err);
return;
}
// Create user document
var user = {
'_id': username,
'password': password_hash
};
// Add email if set
if (email != "") {
user['email'] = email;
}
// NOT SURE What to write here
callback(null);
});
});
}
并请提出准确的问题。
如果我理解正确,你不知道如何处理回调?
您只需传递将在函数中的所有工作完成后调用的函数作为参数回调。完成后,您可以使用所需参数调用回调。
如果出现错误,则为 err 对象;如果没有错误,则为 null。
如果您想将创建的用户传递给回调,只需替换
回调(空);带回调(空,用户);
第一 post。我是一名学习 js 的学生,遇到了一个回调问题,我不确定如何正确构造它。
var bcrypt = require('bcrypt-nodejs');
var users = db.collection("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;
}
// NOT SURE What to write here
callback(Error("addUser Not Yet Implemented!"), null);
}
首先:尽可能不要使用同步方法,而是使用回调。
var bcrypt = require('bcrypt-nodejs');
var users = db.collection("users");
this.addUser = function(username, password, email, callback) {
"use strict";
// Generate password hash
bcrypt.genSalt(function(err, salt) {
if (err) {
callback(err);
return;
}
bcrypt.hash(password, salt, function(err, password_hash) {
if (err) {
callback(err);
return;
}
// Create user document
var user = {
'_id': username,
'password': password_hash
};
// Add email if set
if (email != "") {
user['email'] = email;
}
// NOT SURE What to write here
callback(null);
});
});
}
并请提出准确的问题。 如果我理解正确,你不知道如何处理回调? 您只需传递将在函数中的所有工作完成后调用的函数作为参数回调。完成后,您可以使用所需参数调用回调。 如果出现错误,则为 err 对象;如果没有错误,则为 null。
如果您想将创建的用户传递给回调,只需替换 回调(空);带回调(空,用户);