Sails Js面临严重问题。 所以,我有如下所述的一对多关系(摘自官方风帆documentation):
// myApp/api/models/User.js
// A user may have many pets
module.exports = {
attributes: {
firstName: {
type: 'string',
columnName: "first_name"
},
lastName: {
type: 'string',
columnName: "last_name"
},
// Add a reference to Pets
pets: {
collection: 'pet',
via: 'owner'
}
}
};
和依赖模型:
// myApp/api/models/Pet.js
// A pet may only belong to a single user
module.exports = {
attributes: {
breed: {
type: 'string'
//column name will be 'breed' by default
},
typeProperty: {
type: 'string',
columnName: "type_property"
},
nameProperty: {
type: 'string',
columnName: "name_property"
},
// Add a reference to User
owner: {
model: 'user'
}
}
};
当我在查询后面的代码中调用时
User.find()
.populate('pets')
.exec(function(err, users) {
if(err) // handle error
// The users object would look something like the following
[{
id: 123,
firstName: 'Foo',
lastName: 'Bar',
pets: [{
id: 1,
// !! Only this property is loaded !!
breed: 'labrador',
// !! This property is NOT loaded !!
typeProperty: undefined,
// !! This property is NOT loaded !!
nameProperty: undefined,
user: 123
}]
}]
});
基本上,似乎sails(水线如果是特定的)不是映射回属性,它具有指定的自定义“columName”并且与属性名称不同(例如存储在type_property
列中的“typeProperty”)。
有没有人遇到过这种问题?
答案 0 :(得分:1)
事实上,我遇到了这个问题。属性“columnName”无效。似乎Sails没有优先考虑该属性的模型常规命名。


尝试将模型属性名称更改为与数据库属性相等。
&# xA;
 type_property:{
键入:'string'
},



 这应该会填充您的属性。在这里工作。


当有问题的属性是外键时,列名称可以正常工作。