gpt4 book ai didi

node.js - 无法理解 ASYNC npm 包中的 ASYNC 系列

转载 作者:太空宇宙 更新时间:2023-11-03 21:59:18 25 4
gpt4 key购买 nike

您好,我想从我的 API 中删除 ASYNC OF HELL。我遇到了一个名为 async 的 npm 包,它提供了名为 async series 的选项。因此,我在 API 中进行了尝试,其中我制作了一个普通的注册表单,该表单获取用户的电子邮件、名字、姓氏和密码,并使用 Node 检查器插入断点来查看其工作情况。我使用 DHC 发布了我的数据。我的 API 无法提供所需的输出,也没有发布错误。我的代码如下

   function email_verification(callback) {
User.find(email, function (err, data) {
if (err) {
callback(err);
}
});
}
function hashing_password(callback) {
bcrypt.genSalt(SALT_WORK_FACTOR, function (err, salt) {
if (err) {
callback(err);
}
bcrypt.hash(password, salt, function (err, hash) {
if (err) {
callback(err);
}
});
});
}
function saving_user(callback) {
password = hash;
delete param.password;
param.password = password;
var user_details = db.User(param);

user_details.save(param, function (err, data) {
if (err) {
callback(err);
} else {
delete data._doc.password;
return res.json({
success: true,
user_details: data
});
}
});
}
async.series([
email_verification,
hashing_password,
saving_user
], function (err) {
if (err.name != null) {
if (err.name === "ValidationError") {
return res.json({
success: false,
exception: "ERROR.USER.ALREADY.EXISTS"
});
} else if (err) {
return res.json({
success: false,
exception: err
});
} else {
return res.json({
success: true,
details: err
});
}
}
});

我的API流程如下:

  1. 我检查电子邮件 ID 是否存在。如果它存在,那么我给出错误,表明电子邮件 ID 存在
  2. 如果电子邮件 ID 不存在,那么我会散列给定的密码,并存储电子邮件、firstName、 mongoDB 中的姓氏和哈希密码。

有人可以告诉我我在哪里犯了错误吗?

最佳答案

在成功情况下(不仅仅是错误情况),您还需要在函数中调用callback

例如:

function email_verification(callback) {
User.find(email, function (err, data) {
if (err) {
callback(err);
} else {
callback(err, data);
}
});
}

您可以简化为:

function email_verification(callback) {
User.find(email, callback);
}

关于node.js - 无法理解 ASYNC npm 包中的 ASYNC 系列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31509153/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com