2016-07-11 20 views
0

Ich habe Probleme mit der Verbindung von SEQUELIZE (MySQL) mit NodeJs. Obwohl die Verbindung hergestellt wurde, aber die Modelle nicht richtig konfiguriert sind. Ich habe diesen Ansatz -Sequelize Verbindung mit Nodejs

./config/sequelize-conn.js

'use strict'; 
var sequelize = function (config, Sequelize) { 
var sql = new Sequelize(config.mysql.db, config.mysql.user, config.mysql.pass, { 
    host:  config.mysql.host, 
    dialect:  'mysql', //|'sqlite'|'postgres'|'mssql' 
    pool:  { 
     max: 5, 
     min: 0, 
     idle: 10000 
    }, 
    //logging:  true, 
    underscored: true 
}); 
sql 
    .sync({force: true}) 
    //.authenticate() 
    .then(function() { 
     console.log('Connection has been established successfully with mysql.'); 
    }, function (error) { 
     console.log('Connection with mysql failed.', error); 
    }); 
return sql; 
}; 
module.exports = sequelize; 

//server.js

var sequelize  = require('sequelize'); 
var sqlConnection = require('./config/sequelize-conn')(config, sequelize); 

Ich möchte direkt auf diese Art und Weise Modell ..

models/HotelGroup.js

var Sequelize = require('sequelize'); 
var sequelize = require('../../config/sequelize-conn'); 
var HotelGroup = Sequelize.define('hotel_chains', { 
    id:   { 
     type:   Sequelize.INTEGER(11), 
     allowNull:  false, 
     primaryKey: true, 
     autoIncrement: true 
    }, 
    hotel_name: { 
     type:  Sequelize.STRING, 
     allowNull: false 
    }, 
    hotel_code: { 
     type:  Sequelize.STRING, 
     allowNull: false 
    }, 
    status:  { 
     type:   Sequelize.BOOLEAN, 
     allowNull: false, 
     defaultValue: '1' 
    } 
}, { 
    tableName:  'hotel_chains', 
    timestamps:  false, 
    paranoid:  true // Model tableName will be the same as the model name 
}); 
module.exports = HotelGroup; 
verwenden

Es gibt mir Fehler, dass Sequelize.define keine Funktion ist.

Obwohl Verbindung hergestellt wird, aber wenn ich versuche, auf jedes Modell in Service-Datei zugreifen mit erfordern. Es bricht mit dieser Fehlermeldung ab. Wo ich falsch liege.

Antwort

1

Ich denke, Sie müssen die Instanz von Sequelize, nicht die Klasse verwenden. So sequelize.definenichtSequelize.define.

Außerdem müssen Sie es richtig instanziiert: var sequelize = new Sequelize(...)

+0

Überprüfen Sie meine Datei '/ config/sequelize-conn.js' ich es richtig instanziiert haben.. & für 'sequelize.define'. Ich habe das auch versucht. Ich bekomme denselben Fehler. – Sankalp