第 1 篇文章。我是一名学习 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。
如果你想将创建的用户传递给回调,只需替换 回调(空);带回调(null,用户);
关于node.js - 创建用户,回调,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28034599/