0
當我嘗試使用我的包含模型中的屬性時收到超時錯誤,我在想它是否與我試圖包含該屬性或與該屬性無關的方式有關到我的代碼片段。使用包含和屬性進行續集 - 超時錯誤
這裏是我的路由查詢(在db.Description,身體就是我說的):
router.get('/:pattern/:color/result', function(req, res, image){
console.log(req.params.color);
console.log(req.params.pattern);
db.Images.findAll({
where: {
pattern: req.params.pattern,
color: req.params.color
},
include: [{model: db.Description, attributes: 'body'}],
attributes: ['id', 'pattern', 'color', 'imageUrl', 'imageSource', 'description_id', 'description.body']
}).then(function(image){
//console.log(doc.descriptions_id);
res.render('pages/suit-result.hbs', {
pattern : req.params.pattern,
color : req.params.color,
image : image
})
});
});
這裏是我的圖片模型:
module.exports = function(sequelize, DataTypes){
var Images = sequelize.define('images', {
pattern: DataTypes.STRING,
color: DataTypes.STRING,
imageUrl: DataTypes.STRING,
imageSource: DataTypes.STRING,
description_id: DataTypes.INTEGER
}, {
classMethods: {
associate: function(db) {
Images.belongsTo(db.Description, {foreignKey: 'description_id'});
}
}
});
return Images;
}
這裏是我的描述模型:
module.exports = function(sequelize, DataTypes) {
var Description = sequelize.define('description', {
description_id: {
type: DataTypes.INTEGER,
primaryKey: true
},
color: DataTypes.STRING,
body: DataTypes.STRING
}, {
freezeTableName: true
});
return Description;
}
這裏是我的聯接正在發生的事情:
var Sequelize = require('sequelize');
var sequelize = new Sequelize("assistant", "admin", "pwd", {
host: "site.com",
port: 3306,
dialect: 'mysql'
});
var db = {};
db.Description = sequelize.import(__dirname + "/descriptionModel");
db.Images = sequelize.import(__dirname + "/imagesModel");
db.Images.associate(db);
db.sequelize = sequelize;
db.Sequelize = Sequelize;
module.exports = db;
attributes選項應該是數組或對象(http://sequelize.readthedocs.org/en/latest/api/model/#findalloptions-promisearrayinstance)。如果這導致錯誤,您可能會在客戶端看到超時錯誤。但是如果你正在看服務器的錯誤,我不確定是否是這樣。你能看到服務器端的錯誤?如果是這樣,他們說什麼? –
@DJStroky這是一個將屬性放在數組中的問題。謝謝! – cphill