2016-10-12 23 views
0

我正在構建基於此sequelize example的示例應用程序。findAll不是函數

,我發現了以下錯誤:

TypeError: models.User.findAll.then is not a function

配置/ config.json

{ 
    "development": { 
    "username": "postgres", 
    "password": "root", 
    "database": "test", 
    "host": "127.0.0.1", 
    "dialect": "postgres", 
    "port": "5432" 
    } 
...same for test & production 

控制器/ user.js的

var express = require('express'); 
var router = express.Router(); 
var models = require('../models'); 

router.get('api/user', function (req, res) { 
    models.User.findAll.then(function(users) { 
     res.json(users); 
    }); 
}); 

模型/User.js

"use strict"; 
module.exports = function(sequelize, DataTypes) { 
    var User = sequelize.define("User", { 
     id : { 
      type : DataTypes.INTEGER, 
      primaryKey: true, 
      allowNull : false, 
     }, 
     name : { 
      type : DataTypes.STRING, 
      allowNull : false, 
     }, 
     email : { 
      type : DataTypes.STRING, 
      allowNull : false, 
     }, 
     role : { 
      type : DataTypes.INTEGER, 
      allowNull : false, 
     } 
    }, { 
     tableName: 'user' 
    }); 
    return User; 
}; 

模型/ index.js是基本上相同的GitHub庫

"use strict"; 

var fs = require("fs"); 
var path = require("path"); 
var Sequelize = require("sequelize"); 
var env = process.env.NODE_ENV || "development"; 
var config = require(__dirname + '/../config/config.json')[env]; 
var sequelize = new Sequelize(config.database, config.username, config.password, config); 

var db = {}; 

fs.readdirSync(__dirname).filter(function(file) { 
    return (file.indexOf(".") !== 0) && (file !== "index.js"); 
}).forEach(function(file) { 
    var model = sequelize["import"](path.join(__dirname, file)); 
    db[model.name] = model; 
}); 

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

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

module.exports = db; 
+0

被鏈接一個承諾'findAll'是一種方法。你需要叫它'findAll()' –

回答

3

findAll是一種方法。

您需要給它打電話,findAll()

這將返回可使用then

+0

啊哈,謝謝。 :) – gyc