当从contoller调用时,classMethods findMyMobile()给出了错误

编程入门 行业动态 更新时间:2024-10-11 15:19:41

当从contoller调用时,classMethods findMyMobile()给<a href=https://www.elefans.com/category/jswz/34/1769022.html style=出了错误"/>

当从contoller调用时,classMethods findMyMobile()给出了错误

我已经在用户模型中创建了许多实例和类方法。但是,当我从控制器调用类方法findMyMobile()时,它给出了“不是函数”错误。我试过在控制器内显示它,但似乎在这里未定义。

model / user.js

const { Sequelize, sequelize } = require('../db/sequelize');
const jwt = require('jsonwebtoken');

const Model = Sequelize.Model;

class User extends Model {}
User.init({
    id:{
        type: Sequelize.INTEGER,
        primaryKey: true,
        autoIncrement: true
    },
    name: {
        type: Sequelize.STRING,
        allowNull: false
    },
    mobile_number:{
        field:'mobile_number',
        type: Sequelize.BIGINT(10),
        unique:true,
        allowNull: false,
        is:/^[1-9]\d{9}$/g,
    },
    type:{
        type: Sequelize.ENUM('0','1','2'),
        allowNull: false,
        defaultValue: '1',

    },
    otp:{
        type: Sequelize.STRING,

    },
    createdAt: {
        type: Sequelize.DATE,
        allowNull: false,
        defaultValue: Sequelize.NOW

    },
    updatedAt: {
        type: Sequelize.DATE,
        allowNull: false,
        defaultValue: Sequelize.NOW
    }
},{ sequelize,
    modelName:'user',
    classMethods:{

        findByMobile: function(){
            var User = this;

            return User.findOne({'mobile_number':data['mobile_number']}).then(user => {

                return new Promise((resolve,reject)=>{
                    if(user)
                        resolve(user);
                    else
                        reject(new Error('No user found'));
                });

            }).catch(err=>{
                return Promise.reject(new Error('Database error'));
            })
        }
}
})

User.sync();

module.exports = {
    User
}

controller / login.js

const { User } = require('../model/user');
const _ = require('lodash');



exports.login = (req, res) => {
    const mobile = _.pick(req.body, ['mobile_number']);
    console.log(typeof User.findByMobile);
    User.findByMobile(mobile).then((user) => {
       console.log(user);

    }).catch(err => {
        var response = {
            status: 'failure',
            message: err.message
        }
        res.send(response);
    });

};

错误:

TypeError: User.findByMobile is not a function
回答如下:

我认为您的出口错误。请参阅此示例以供参考。

module.exports = {
  getName: () => {
    return 'Jim';
  },

  getLocation: () => {
    return 'Munich';
  },

  dob: '12.01.1982',
};

然后在导入文件上:

const { getName, dob } = require('./user');
console.log(
  `${getName()} was born on ${dob}.`
);

我建议的是导出功能本身。请参阅下面的链接以获取参考:What is the purpose of Node.js module.exports and how do you use it?

更多推荐

当从contoller调用时,classMethods findMyMobile()给出了错误

本文发布于:2024-05-07 15:57:55,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1757028.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:出了   错误   contoller   classMethods   findMyMobile

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!