代码之家  ›  专栏  ›  技术社区  ›  Ahmer Saeed

节点。js Sequelize ORM模型问题

  •  0
  • Ahmer Saeed  · 技术社区  · 7 年前

    以下是进一步的细节

    错误 :

    project\u directory\u path\node\u modules\sequelize\lib\sequelize。js:322

    模型init(属性、选项);

    TypeError:模型。init不是函数 at模块。导出(project\u directory\u path\models\sequelize\app\u config\u setting.js:2:41) 在project\u directory\u path\models\index。js:34:48 at模块_编译(module.js:425:26) at对象。模块_扩展。。js(模块js:432:10) at模块。负载(模块js:356:32) at功能。模块_负载(模块js:311:12) at模块。要求(模块js:366:17) at对象。(project\u directory\u path\server.js:12:14) at模块_编译(module.js:425:26) at模块。负载(模块js:356:32) at功能。模块_负载(模块js:311:12) 在节点处。js:972:3

    版本

    续集版本:“^4.4.2”, 方言:“mysql”

    文件(加载所有模型)

    var fs = require('fs');
    var path = require('path');
    var sequelize = require('sequelize');
    var sequelizeConnection = 
    require('../configs/dbConnection.js').exposeSequelizeConnectionObj();
    var sequelizeModelDir = path.join(__dirname, 'sequelize');
    var dbModels = {};
    
    fs.readdirSync(sequelizeModelDir)
    
    //avoiding the index.js and all other files
    //expect the model files
    .filter(function (file) {
        return (file.indexOf(".") !== 0) && (file !== "index.js");
    })
    
    //iterating on each models and importing it
    //in sequelize connection object
    .forEach(function (file) {
        var dir = 'sequelize/';
        var models = sequelizeConnection.import(path.join(sequelizeModelDir, file));
        dbModels[models.name] = models;
    });
    
    //exposing all the models
    module.exports = dbModels;
    dbModels.sequelize = sequelizeConnection;
    

    我的一个模特

    module.exports = function (sequelize,DataTypes) {
    var roles = sequelize.define(
        'roles',
        {
            id: {autoIncrement: true, type: DataTypes.INTEGER(11), allowNull: false, primaryKey: true},
            role_name: {type: DataTypes.ENUM('super_admin'), allowNull: false},
            code_name: {type: DataTypes.ENUM('super_admin'), allowNull: false},
            row_status: {type: DataTypes.ENUM('active','inactive'), allowNull: true}
        },
        {
            timestamps: false,
            paranoid: true,
            freezeTableName: true,
            tableName: 'roles'
        }
    );
    return roles; };
    

    var sequelize = require('sequelize');
    var sequelizeConnectionObj = new sequelize(process.env.DB_DATABASE_NAME, 
    process.env.DB_USERNAME, process.env.DB_PASSWORD, {
    host: process.env.DB_HOSTNAME,
    dialect: 'mysql',
    define: {
        timestamps: false
    },
    dialectOptions: {
        multipleStatements: true
    },
    logging: false,
    pool: {
        max: 15,
        min: 0,
        idle: 10000
       }
     });
    
       exports.exposeSequelizeConnectionObj = function connectSequelize() {
       return sequelizeConnectionObj;
      };
    
    1 回复  |  直到 7 年前
        1
  •  0
  •   Ahmer Saeed    7 年前

    通过更新节点模块解决了该问题

    i-e npm更新