节点orm有一个关系

时间:2014-05-31 23:12:34

标签: node.js node-orm2

我正在尝试使用与节点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'...... 有人可以解释我做错了吗?

1 个答案:

答案 0 :(得分:0)

我觉得你很困惑。 请将您的代码更改为(请注意第一行中的获取):

Offer.get(1, function (err, firstOffer) {
  if (err) throw err;
  firstOffer.getShop(function(err, shop) {
    res.send(shop);
  });        
});

当你进行查找然后它返回一个数组(它可以返回一个空数组),所以你正在为数组调用getShop。