Node.js 创建寄存器:TypeError:x27的右侧;instanceof';是不可催缴的明示和允诺

Node.js 创建寄存器:TypeError:x27的右侧;instanceof';是不可催缴的明示和允诺,node.js,express,node-promisify,Node.js,Express,Node Promisify,以下代码显示了错误: TypeError:“instanceof”的右侧不可调用 es6 promisify库似乎存在问题 const {promisify} = require("es6-promisify"); exports.register = async (req, res, next) => { const user = new User({ email: req.body.email, name: req.body.name }); const regi

以下代码显示了错误:

TypeError:“instanceof”的右侧不可调用

es6 promisify
库似乎存在问题

 const {promisify} = require("es6-promisify");

 exports.register = async (req, res, next) => {
    const user = new User({ email: req.body.email, name: req.body.name });
    const register = promisify(User.register, User);
    await register(user, req.body.password);
    res.send("all has been saved")
    next(); // pass to authController.login
  };

问题可能与es6 promisify有关。我建议将es6 promisify更改为内置节点模块util

应该提出一个新的工作解决办法

const { promisify } = require('util');

exports.register = async (req, res, next) => {
  const user = new User({ email: req.body.email, name: req.body.name });
  const register = promisify(User.register).bind(User);
  await register(user, req.body.password);
  next();
}

请注意,只需在用户面前应用wait。由于此方法仍然是一个正常的回调函数,因此无法确定register方法是否起作用,您可以在此上看到问题可能与es6 promisify库错误有关。我建议将es6 promisify更改为内置节点模块util

应该提出一个新的工作解决办法

const { promisify } = require('util');

exports.register = async (req, res, next) => {
  const user = new User({ email: req.body.email, name: req.body.name });
  const register = promisify(User.register).bind(User);
  await register(user, req.body.password);
  next();
}

请注意,只需在User.register方法前应用Wait,由于该方法仍然是一个正常的回调函数,因此无法确定该方法是否正常工作,您可以在此看到,

StackOverflow不是提交错误的地方,您应该在中为该项目执行此操作。StackOverflow不是提交错误的地方,你应该在项目的最后阶段这样做。