Sequelize.js:一对多关系急切加载自定义字段

我正在写节点的应用程序,expression,续集和我有一个小问题。 我正试图在关系的“一部分”上加载一个模型。

我得到这个SQL:

Executing: SELECT `albaran`.*, `cliente`.`ClienteID` AS `cliente.ClienteID`, `cliente`.`NombreES` AS `cliente.NombreES` FROM `albaran` LEFT OUTER JOIN `cliente` AS `cliente` ON `albaran`.`AlbaranNo` = `cliente`.`ClienteID` WHERE `albaran`.`AlbaranNo`='2013100001'; 

我需要它是:

 Executing: SELECT `albaran`.*, `cliente`.`ClienteID` AS `cliente.ClienteID`, `cliente`.`NombreES` AS `cliente.NombreES` FROM `albaran` LEFT OUTER JOIN `cliente` AS `cliente` ON `albaran`.`ClienteID` = `cliente`.`ClienteID` WHERE `albaran`.`AlbaranNo`='2013100001'; 

所以我可以在视图中访问它(现在我得到一个空string):

 #{albaran.cliente.NombreES} 

这是代码:

albaran.js

 module.exports = function(sequelize, DataTypes) { return sequelize.define("Albaran", { AlbaranNo: { type: DataTypes.BIGINT, primaryKey: true}, ClienteID: { type: DataTypes.STRING, //this must be string, I am not who defined the db references: "Cliente", referencesKey: "ClienteID" }},{ timestamps: false, freezeTableName: true, tableName: 'albaran' }) } 

cliente.js

 module.exports = function(sequelize, DataTypes) { return sequelize.define("Cliente", { ClienteID: { type: DataTypes.STRING, primaryKey: true }, NombreES: DataTypes.STRING },{ timestamps: false, freezeTableName: true, tableName: 'cliente' }) } 

协会

 db.Albaran.hasOne(db.Cliente, {as: "cliente", foreignKey: 'ClienteID'}); 

路由器

 exports.albaran = function(req, res) { db.Albaran.findAll({ include: [{ model: db.Cliente, as: "cliente" }]}) .success(function (albaranes){ res.render("albaranes", {albaranes: albaranes}); }); }; 

非常感谢你。 我希望我清楚地解释自己。

版:

我发现解决scheme修改关联:

 db.Albaran.belongsTo(db.Cliente, {as: "cliente", foreignKey: 'ClienteID', primaryKey: 'ClienteID'}); db.Cliente.hasMany(db.Albaran, {as: "albaranes", foreignKey: 'ClienteID'}); 

谢谢大家

这可能是:

 db.Cliente.hasMany(db.Albaran, {as: "albaran", foreignKey: 'ClienteID'}); 

更多信息: http : //sequelizejs.com/documentation#associations-one-to-many

另一面是:

db.Albaran.hasOne(db.Cliente,{as:“cliente”,foreignKey:'AlbaranNo“});