微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

没有定义“定义”续集

如何解决没有定义“定义”续集

我正在使用sequelize-sendgrid向用户发送电子邮件验证令牌 我将发布主要问题,然后发布与此问题相关的文件 错误

:“ TypeError:this.sequelize.isDefined不是函数\ n 在Function.init(C:\ Users \ LENOVO \ Desktop \ Dashboard-V1 \ clientServer \ node_modules \ sequelize \ lib \ model.js:968:24)\ n 在module.exports(C:\ Users \ LENOVO \ Desktop \ Dashboard-V1 \ clientServer \ models \ user.js:22:8)\ n
在对象。 (C:\ Users \ LENOVO \ Desktop \ Dashboard-V1 \ clientServer \ handlers \ user.controllers \ user.controllers.registration.js:18:43)\ n在Module._compile(internal / modules / cjs / loader.js :1137:30)\ n在Object.Module._extensions..js(internal / modules / cjs / loader.js:1157:10)\ n在Module.load(internal / modules / cjs / loader.js:985: 32)\ n在Function.Module._load(internal / modules / cjs / loader.js:878:14)\ n在Module.require(internal / modules / cjs / loader.js:1025:19)\ n在require (内部/模块/cjs/helpers.js:72:18)\n在对象处。 (C:\ Users \ LENOVO \ Desktop \ Dashboard-V1 \ clientServer \ routes.js:8:24)“,” type“:”错误“,” msg“:” this.sequelize.isDefined不是函数“}

'use strict';

const {
  Model
} = require('sequelize')
const DataTypes = require("sequelize").DataTypes
module.exports = (sequelize ) => {
  class User extends Model {
    /**
     * Helper method for defining associations.
     * This method is not a part of Sequelize lifecycle.
     * The `models/index` file will call this method automatically.
     */
    static associate(models) {
      verificationtoken.belongsTo(models.User,{
                as: "user",foreignKey: "userId",foreignKeyConstraint: true
            });
    }
  };
  User.init({
    id: DataTypes.INTEGER.UNSIGNED,firstName: DataTypes.STRING,lastName: DataTypes.STRING,email: DataTypes.STRING,password: DataTypes.STRING,isverified: DataTypes.BOOLEAN,countryCode: DataTypes.STRING,phonenumber: DataTypes.STRING,confirmation_token: DataTypes.STRING,linked_user_id: DataTypes.INTEGER,secret_totp: DataTypes.INTEGER,is_admin: DataTypes.INTEGER,account_status: DataTypes.INTEGER,},{
    sequelize,modelName: 'User',});
  return User;
};

以上部分通过sclielize cli创建的用户模型

'use strict';
const {
  Model
} = require('sequelize');
const DataTypes = require("sequelize").DataTypes;

module.exports = () => {
  class VerificationToken extends Model {
    static associate(models) {
      verificationtoken.belongsTo(models.User,foreignKeyConstraint: true
            });
    }
  };
  VerificationToken.init({
    userId: DataTypes.INTEGER,token: DataTypes.STRING
  },modelName: 'VerificationToken',});
  return VerificationToken;
};

使用续集cli的验证模型

需要控制器中的用户和验证模块

const User = require('../../ models / user')(sequelize,DataTypes) const VerificationToken = require(“ ../../ models / VerificationToken”)(sequelize,DataTypes) 请注意,当我向用户控制器中所需的用户发送(序列化,数据类型)时,create / find函数起作用,而如果我不发送给他们,则函数未定义

发送电子邮件功能

const SignUpController = (req,res,next) => {
  return User.findOrCreate({
    where: { email:  req.body.email },})
  .spread((user,created) => {
    // if user email already exists
    if(!created) {
      return res.status(409).json('User with email address already exists');
    } else {
      return VerificationToken.create({
        userId: user.id,token: crypto(16)
      }).then((result) => {
        sendVerificationEmail(user.email,result.token);
        return res.status(200).json(`${user.email} account created successfully`);
      })
      .catch((error) => {
        return res.status(500).json(error);
      });
    }
  })
  .catch((error) => {
    return res.status(500).json(error);
  });
};


版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。