node.js - 创建用户,回调

标签 node.js callback node-mongodb-native

第 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/

相关文章:

ios - Swift 中的回调函数语法

ruby-on-rails - 简化模型中的代码

node.js - node-mongodb-native MongoClient 意外关闭连接

javascript - 根据对象的键和值构造数组

node.js - 在 node.js 中使用 redis

node.js - NodeJS同步IO实现

scala - 澄清永远不会完成的 Scala Future 及其对其他回调的影响

html - 如何将查询字符串附加到 Angular ui-router 中的 URL

node.js - 如何处理 node-mongodb-native 中的连接问题

node.js - 如何获取具有非唯一数组元素的文档?