我正在尝试使用与节点orm模块的简单的hasOne关系:
var Shop = db.define('shops', {
id: { type: "serial", key: true },
name: String
});
var Offer = db.define('offers', {
id: { type: "serial", key: true },
name: String
});
Offer.hasOne('shop', Shop);
然后我想获得所选商品的商店;在doc中写道,hasOne关系设置了一个新方法,在这种情况下为getShop:
Offer.find(1, function (err, firstOffer) {
if (err) throw err;
firstOffer.getShop(function(err, shop) {
res.send(shop);
});
});
但是一切都崩溃了,说firstOffer没有方法'getShop'...... 有人可以解释我做错了吗?
答案 0 :(得分:0)
我觉得你很困惑。 请将您的代码更改为(请注意第一行中的获取):
Offer.get(1, function (err, firstOffer) {
if (err) throw err;
firstOffer.getShop(function(err, shop) {
res.send(shop);
});
});
当你进行查找然后它返回一个数组(它可以返回一个空数组),所以你正在为数组调用getShop。