2015-10-15 66 views
2

我手動創建了一個sql數據庫,現在正試圖設置我的sequelize模型來匹配我的sql表中的列,但是我遇到了與我的模型有關的無法識別的問題字段類型。我似乎無法查明錯誤,以及它是否與我的數據庫中字段的數據類型不匹配,或者sequelize無法識別我的一些代碼。ExpressJS - Sequelize - 無法識別的數據類型

這是我的錯誤:

/Users/user/Desktop/Projects/node/assistant/node_modules/sequelize/lib/model.js:90 
     throw new Error('Unrecognized data type for field ' + name); 
      ^
Error: Unrecognized data type for field pattern 
    at null.<anonymous> (/Users/user/Desktop/Projects/node/assistant/node_modules/sequelize/lib/model.js:90:13) 
    at /Users/user/Desktop/Projects/node/assistant/node_modules/sequelize/node_modules/lodash/index.js:2874:23 
    at /Users/user/Desktop/Projects/node/assistant/node_modules/sequelize/node_modules/lodash/index.js:3395:24 
    at /Users/user/Desktop/Projects/node/assistant/node_modules/sequelize/node_modules/lodash/index.js:3073:15 
    at baseForOwn (/Users/user/Desktop/Projects/node/assistant/node_modules/sequelize/node_modules/lodash/index.js:2046:14) 
    at Function.mapValues (/Users/user/Desktop/Projects/node/assistant/node_modules/sequelize/node_modules/lodash/index.js:3394:9) 
    at new Model (/Users/user/Desktop/Projects/node/assistant/node_modules/sequelize/lib/model.js:74:50) 
    at Sequelize.define (/Users/user/Desktop/Projects/node/assistant/node_modules/sequelize/lib/sequelize.js:577:15) 
    at Object.<anonymous> (/Users/user/Desktop/Projects/node/assistant/app/models/imagesModel.js:9:24) 
    at Module._compile (module.js:456:26) 
    at Object.Module._extensions..js (module.js:474:10) 
    at Module.load (module.js:356:32) 
    at Function.Module._load (module.js:312:12) 
    at Module.require (module.js:364:17) 
    at require (module.js:380:17) 
    at Object.<anonymous> (/Users/user/Desktop/Projects/node/assistant/app/routes.js:4:14) 
    at Module._compile (module.js:456:26) 
    at Object.Module._extensions..js (module.js:474:10) 
    at Module.load (module.js:356:32) 
    at Function.Module._load (module.js:312:12) 
    at Module.require (module.js:364:17) 
    at require (module.js:380:17) 

這裏是我的模型:

var Sequelize  = require('sequelize'); 
var sequelize = new Sequelize('db', 'admin', 'pwd', { 
    host: 'database-host', 
    port: 3306, 
    dialect: 'mysql' 
}); 


var Images = sequelize.define('images', { 
    pattern: { 
     type: sequelize.STRING, 
     field: 'pattern' 
    }, 
    color: { 
     type: sequelize.STRING, 
     field: 'color' 
    }, 
    imageUrl: { 
     type: sequelize.STRING, 
     field: 'imageUrl' 
    }, 
    imageSource: { 
     type: sequelize.STRING, 
     field: 'imageSource' 
    }, 
    description_id: { 
     type: sequelize.INTEGER, 
     field: 'description_id' 
    } 
}); 

module.exports = Images; 
+1

這個[doc page](http://docs.sequelizejs.com/en/latest/docs/getting-started/#your-first-model)顯示的類型是'Sequelize.STRING'而不是'sequelize.STRING' 。請注意首字母大寫S. – jfriend00

回答

3

我覺得你的代碼應該是:

var Sequelize  = require('sequelize'); 
var sequelize = new Sequelize('db', 'admin', 'pwd', { 
    host: 'database-host', 
    port: 3306, 
    dialect: 'mysql' 
}); 


var Images = sequelize.define('images', { 
    pattern: { 
     type: Sequelize.STRING, 
     field: 'pattern' 
    }, 
    color: { 
     type: Sequelize.STRING, 
     field: 'color' 
    }, 
    imageUrl: { 
     type: Sequelize.STRING, 
     field: 'imageUrl' 
    }, 
    imageSource: { 
     type: Sequelize.STRING, 
     field: 'imageSource' 
    }, 
    description_id: { 
     type: Sequelize.INTEGER, 
     field: 'description_id' 
    } 
}); 

module.exports = Images; 

你可以參考http://docs.sequelizejs.com/en/latest/api/datatypes/http://docs.sequelizejs.com/en/latest/docs/models-definition/或這裏的一個例子:https://github.com/thanhson1085/angular-admin-seed/blob/master/server/models/user.js

+0

不要在這裏看到它:http://docs.sequelizejs.com/en/latest/docs/getting-started/#your-first-model – jfriend00

+0

你讀過了:http:/ /docs.sequelizejs.com/en/latest/docs/models-definition/,我只是把'sequelize'改成'Sequelize'。它適合你嗎? –

+0

@NguyenSyThanhSon這工作。謝謝! – cphill