代码之家  ›  专栏  ›  技术社区  ›  Piero

TypeError:UserModel.create不是函数,Sequelize

  •  1
  • Piero  · 技术社区  · 6 年前

    我在使用Sequelize时遇到一些问题,这是我的代码:

    import {initializeSequelize} from "./config/sequelize_init"
    
    async function main() {
      try {
    
        let db = await initializeSequelize();
    
        console.log("DB Connected");
    
        app.listen(3000, function() {
          console.log("Example app listening on port 3000!");
    
          const UserModel = require('./api/v1/user/model')
    
          UserModel.create({fname: "a", lname: "a"});
        });
      } catch (error) {
        console.warn(error);
      }
    }
    
    main();
    

    续集\u init.js

    import Sequelize from 'sequelize'
    
      export async function initializeSequelize() {
    
        const sequelize = new Sequelize(process.env.MYSQL_NAME, process.env.MYSQL_USER, process.env.MYSQL_PASS, {
            host: process.env.MYSQL_HOST,
            dialect: 'mysql',
            port: process.env.MYSQL_PORT,
            operatorsAliases: false
          });
    
    
          const models = {
            User: sequelize.import('../api/v1/user/model.js')
          };
    
          Object.keys(models).forEach(key => {
            if ('associate' in models[key]) {
              models[key].associate(models);
            }
          });
    
          models.sequelize = sequelize;
          models.Sequelize = Sequelize;
    
          let a = await models.sequelize.authenticate();
    
      }
    

    模型.js

    module.exports = (sequelize, Sequelize) => {
        return sequelize.define('user', {
              fname: Sequelize.STRING,
              lname: Sequelize.STRING
        });
    }
    

    Executing (default): SELECT 1+1 AS result (<<<--- I DONT KNOW WHAT IS THIS BTW)
    DB Connected
    Example app listening on port 3000!
    
    UserModel.create({ fname: "a", lname: "a"});
                            ^
    
    TypeError: UserModel.create is not a function
    

    1 回复  |  直到 6 年前
        1
  •  -1
  •   Chirag Bansal    6 年前

    我猜在需要模型之后,您必须访问用户模型。