2017-02-15 1 views
1

Я использую nodejs с sequelize и подключаюсь к базе данных postgres.Nodejs - Не удается прочитать свойство 'findAll' of undefined

Я создал модель и внутри одного из моих маршрутов, я пытаюсь вернуть всех пользователей в базу данных.

Код:

routes.js

var models = require('../server/models/index'); 
router.get('/users', function(req, res, next) { 

    models.Users.findAll({}).then(function(user) { 

    }); 
}); 

/сервер/модели/индекс

'use strict'; 

var fs  = require('fs'); 
var path  = require('path'); 
var Sequelize = require('sequelize'); 
var basename = path.basename(module.filename); 
var env  = process.env.NODE_ENV || 'development'; 
var config = require(__dirname + '/../config.json')[env]; 
var db  = {}; 

if (config.use_env_variable) { 
    var sequelize = new Sequelize(process.env[config.use_env_variable]); 
} else { 
    var sequelize = new Sequelize(config.database, config.username, config.password, config); 
} 

fs 
    .readdirSync(__dirname) 
    .filter(function(file) { 
    return (file.indexOf('.') !== 0) && (file !== basename); 
    }) 
    .forEach(function(file) { 
    if (file.slice(-3) !== '.js') return; 
    var model = sequelize['import'](path.join(__dirname, file)); 
    db[model.name] = model; 
    }); 

Object.keys(db).forEach(function(modelName) { 
    if (db[modelName].associate) { 
    db[modelName].associate(db); 
    } 
}); 

db.sequelize = sequelize; 
db.Sequelize = Sequelize; 

module.exports = db; 

Я получаю при запуске сервера и навигации к нему следующее:

Cannot read property 'findAll' of undefined

Я проверил соединение, и все работает нормально. Кажется, я не могу понять, что здесь происходит. Любые идеи, что мне не хватает?

EDIT:

users.js

'use strict'; 
module.exports = function(sequelize, DataTypes) { 
    var Users = sequelize.define('users', { 
    email: DataTypes.STRING 
    }, { 
    classMethods: { 
     associate: function(models) { 
     // associations can be defined here 
     } 
    } 
    }); 
    return Users; 
}; 
+0

у вас есть user.js где-то там? –

+0

@Adam Popkiewicz Я только что обновил свой вопрос. Пожалуйста, см. Edit – Phorce

+0

Не уверен, возможно, капитал U 'var Users = sequelize.define ('Users', {' –

ответ

0

Вместо sequelize.define ('пользователей');

Попробуйте var Users = sequelize.define ('Users'); или var Users = sequelize.define («Пользователь»);

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

  • Нет связанных вопросов^_^