【发布时间】:2022-01-18 01:21:09
【问题描述】:
我正在尝试将 bcrypt 哈希函数的结果传递给下面的用户模型。
我似乎无法思考如何有效地解决这个承诺。
代码如下:
router.post("/", async (req, res) => {
req.body = sanitize(req.body);
// SHA-256
/* const bitArray = sjcl.hash.sha256.hash(req.body.data[2].value);
const passwordHashed = sjcl.codec.hex.fromBits(bitArray); */
const saltRounds = 10;
const password = req.body.data[2].value;
var passwordHashed;
async function hash() {
return await bcrypt.hash(password, saltRounds, function (err, hash) {});
}
const user = new User({
username: req.body.data[0].value,
email: req.body.data[1].value,
password: hash(),
});
try {
await user.save();
res.status(200).json({ msg: "Success" });
} catch (e) {}
});
这是我迄今为止尝试过的,这可能是错误的
【问题讨论】:
-
bcrypt.hash(…)是否首先会返回一个承诺?看起来它正在接受回调 -
它确实接受回调,并且 cosole 日志哈希确实显示了所需的输出。但是试图将哈希分配给它分配一个promies而不是哈希值的范围之外的值
标签: javascript express promise