2016-11-19 3 views
-1

Я пытаюсь реализация caminteJs на nodejs применения, после определения схемы базы данных на отдельный файл я не могу использовать, что и я получаю эту ошибку:Nodejs модель не является конструктор

TypeError: models.channels.create is not a constructor 

Я создал папку модели и в том, что у меня есть некоторые базы данных схемы, которые обернутый в отделенной файл в

user.js //contains user table schema 
news.js //contains news table schema 

в index.js который его в папку модели у меня есть:

var users = require('./user'); 
var news = require('./news'); 

module.exports = { 
    users:users, 
    news:news 
}; 

user.js содержимое файла:

var config = require('../config'); 
module.exports = function(schema){ 
    var users = config.define('users', { 
     user_name: { type: schema.String, limit: 30 }, 
     ... 
     created_at: { type: schema.Date }, 
     updated_at: { type: schema.Date } 
    }); 

    return users; 
}; 

config.js содержимое файла:

var caminte = require('caminte'), 
    Schema = caminte.Schema, 
    config = { 
     driver: "mysql", 
     host: "localhost", 
     port: "3306", 
     username: "root", 
     password: "", 
     database: "test", 
     pool: true 
    }, 
    schema = new Schema(config.driver, config); 

module.exports = { 
    caminte: caminte, 
    Schema: Schema, 
    config: config, 
    schema: schema 
} 

, а затем мой server.js использовать их:

var socket = require('socket.io'), 
    ... 
    config = require('./config'), 
    models = require('./models'); 

io.on('connection', function (socket) { 
    socket.on("new_user", function (data, device) { 
     const channels = new models.users.create(function(err){ 
      user_name: 'Peter' 
     }); 

     console.log(channels); 
    }); 
}); 
+0

@ jfriend00 'models' - это папка, в которой есть один' index.js', а какой-то файл в качестве схемы базы данных, которую я использую, требует, чтобы импортировать все файлы, пожалуйста, см. Эту часть моего сообщения как 'в индекс. js, который у него в папке с папками у меня есть: ' –

ответ

0

В зависимости от того, что вы хотите и как вашей схеме похоже, но для создания попробуйте использовать:

const user = models.users.create(function(err){ 
      console.log('Error happened', err); 
     }); 
+0

Тогда вам также следует отредактировать сообщение об ошибке или? –

+0

Я получаю эту ошибку sir –

+0

Вы можете использовать 'model.entity.create (errCallback)' или 'new model.entity()' и 'entity.save (callback)', но не первый вариант с 'new'. См. Редактирование. –

Смежные вопросы