2016-04-29 4 views
1

So habe ich zwei Modelle, Benutzer und Chat. Jeder Benutzer kann mehrere Chats haben und jeder Chat kann mehrere Benutzer haben. Also habe ich ein neues Modell namens UserChat -Sequelize Node.js neue Funktionen funktionieren nicht nach dem Erstellen einer viele zu viele Beziehung

var db = require('../db'); 
var Chat = require('../models/chats'); 
var User = require('../models/users'); 


var UserChat = db.connection.define("user_chat", { 
    id: { 
     type: db.Sequelize.INTEGER, 
     primaryKey: true, 
     autoIncrement: true 
    } 
}) 

Chat.ChatModel.belongsToMany(User.UserModel, {through: {model: 'user_chat'}}); 
User.UserModel.belongsToMany(Chat.ChatModel, {through: {model: 'user_chat'}}); 

Dieses eine Tabelle in der Datenbank erstellt genannt user_chats und nach sequelize der Dokumentation, sollte ich in der Lage sein addUser auf meinem Chat-Modell und addChat auf meinem User-Modell zu verwenden,

Aber wenn ich versuche Chat.ChatModel.addUser (Benutzer) zu verwenden, erhalte ich die Fehlermeldung „addUser ist keine Funktion“

Dies ist, wie ich das Chat-Modell und User-Modell erklären -

var db = require('../db') 
    var Chat = db.connection.define("chat", { 
     chatname: { 
      type: db.Sequelize.STRING, 
      unique: true, 
      allowNull: false 
     }, 
     creator:{ 
      type: db.Sequelize.INTEGER, 
      unique: false, 
      allowNull: false 
     } 
    }); 

    module.exports.ChatModel = Chat; 
mein User-Modell

und dann (vereinfacht) -

var db = require('../db') 

var User = db.connection.define("user", { 
    username: { 
     type: db.Sequelize.STRING, 
     unique: true, 
     allowNull: false 
    }, 
    password: { 
     type: db.Sequelize.STRING, 
     unique: false, 
     allowNull: false 
    }, 
}); 

module.exports.UserModel = User; 

Nun, wenn ich die addUser Funktion oder eine neue Funktion zu verwenden versuchen sollte ich nach dem documentation gegeben werden ich den Fehler, dass die Funktion nicht noch tut existieren.

Antwort

0

Also mein Problem war ich versuchte, die Methoden auf den tatsächlichen Modellen aufzurufen, aber die Methoden werden zu Instanzen der Modelle hinzugefügt. Sie müssen also den Chat/Benutzer finden, bevor Sie addChat oder addUser verwenden.