2017-02-15 50 views
1

私はsequenizeとpostgresデータベースに接続してnodejsを使用しています。Nodejs - プロパティ 'findAll'の未定義を読み取ることができません

私はモデルを作成しました。私のルートの1つに、データベース内のすべてのユーザーを返そうとしています。

コード:

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

どこかにusers.jsがありますか? –

+0

@Adam Popkiewicz私はちょうど私の質問を更新しました。編集 – Phorce

+0

がわかりません、多分大文字U 'var Users = sequelize.define( 'Users'、{' –

答えて

0

代わりのsequelize.define( 'ユーザ')。

varユーザー= sequelize.define( 'Users');を試してください。またはvar Users = sequelize.define( 'User');

関連する問題