Node.js error: "undefined No callback function was given"

Node.js error: "undefined No callback function was given"

我目前正在学习 React,方法是学习我们构建视频租赁应用程序的课程。后端代码由讲师提供,我们的工作是将前端连接到后端。在应用程序中提交注册表时,我在启动服务器的 Git Bash 中收到以下错误:"undefined No callback function was given".

我认为这个问题与bcrypt有关(讲师使用bcrypt-nodejs加密密码)。由于 bcrypt-nodejs 已被弃用,我安装了 bcryptjs 并阅读了文档。但是,我真的不知道如何修改代码以使其工作。

如果有人能帮我解决这个问题,我将不胜感激。我是 Web 开发的新手,我正在努力使这段代码正常工作。

非常感谢。

下面与注册表交互的后端部分:

const bcrypt = require("bcrypt-nodejs");
const _ = require("lodash");
const { User, validate } = require("../models/user");
const express = require("express");
const router = express.Router();

router.get("/", async (req, res) => {
  const users = await User.find();
  res.send(users);
});

router.get("/me", auth, async (req, res) => {
  const user = await User.findById(req.user._id).select("-password");
  res.send(user);
});

router.post("/", async (req, res) => {
  const { error } = validate(req.body);
  if (error) return res.status(400).send(error.details[0].message);

  let user = await User.findOne({ email: req.body.email });
  if (user) return res.status(400).send("User already registered.");

  user = new User(_.pick(req.body, ["name", "email", "password"]));
  const salt = await bcrypt.genSalt(10);
  user.password = await bcrypt.hash(user.password, salt);
  await user.save();

  const token = user.generateAuthToken();
  res
    .header("x-auth-token", token)
    .send(_.pick(user, ["_id", "name", "email"]));
});

module.exports = router;

bcrypt.gensalt的正确使用方法如下:

bcrypt.genSalt(saltRounds, function(err, salt) {
    bcrypt.hash(myPlaintextPassword, salt, function(err, hash) {
        // Store hash in your password DB.
    });
});

这里function(err, salt)代表回调函数

这是link for more details on bcrypt and about the callback