2017-02-15 26 views
1

我使用nodejs與sequ​​elize並連接到postgres數據庫。Nodejs - 無法讀取未定義的屬性'findAll'

我已經創建了一個模型,並在我的一條路線中嘗試返回數據庫中的所有用戶。

代碼:

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

我測試了連接,並且它都工作正常。我似乎無法弄清楚這裏出了什麼問題。任何想法,我失蹤了?

編輯:

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我剛剛更新了我的問題。請參閱編輯 – Phorce

+0

不確定,也許大寫U'var Users = sequelize.define('Users',{' –

回答

0

代替sequelize.define( '用戶');

嘗試var Users = sequelize.define('Users');或var Users = sequelize.define('User');

相關問題