【问题标题】:LoopBack: cannot call method 'post' of undefinedLoopBack:无法调用未定义的方法“发布”
【发布时间】:2014-09-30 21:36:36
【问题描述】:

我是 loopback 和 node.js 的新手。

我创建了两个模型:Rating 和 RatingsAggregate 使用环回资源管理器,我可以很好地查询和发布 API。

我正在尝试设置一些基本的业务逻辑,所以我在 common/models 中编辑文件 Rating.js 以下是它的内容:

module.exports = function(Rating) {


Rating.afterRemote('**', function(ctx, inst, next) {


    var loopback = require('loopback');
    var app = loopback();
    var ratingsaggregate = app.models.ratingsaggregate;

    ratingsaggregate.post({"source":"foobar","restaurantID":"foobar","itemMenuName":"foobar","itemSectionName":"foobar","itemName":"foobar","nRatings1":123,"nRatings2":123,"nRatings3":123,"nRatings4":123,"nRatings5":123,"hasImage":true,"imageSize":123,"latestImageRatingID":"foobar","imageCount":123,"lastUpdated":"foobar"}, function(err, response) {
        if (err) console.error(err);
        next();
    });

  });

};

我可以加载我的 API,但是每当我针对它运行 get 语句时,我都会收到以下错误:

TypeError: Cannot call method 'post' of undefined

我的猜测是,评分聚合永远不会获得价值......但我不知道我做错了什么。显然这不是我的业务逻辑的最终状态,但我现在正在两个模型之间尝试一些基本的 CRUD

【问题讨论】:

  • 你在哪里定义app.models.ratingsaggregate
  • 据我了解,app 在 var app = loopback(); 中定义,然后 app.model 是 loopback 所固有的,它包含我创建的所有模型(目前两个如我的问题)

标签: javascript node.js undefined loopbackjs


【解决方案1】:

而且...这就是答案。文档中隐藏了一个 getModel 函数

module.exports = function(Rating) {


Rating.afterRemote('create', function(ctx, inst, next) {


    var loopback = require('loopback');
    var ratingsaggregate = loopback.getModel('ratingsaggregate');

    ratingsaggregate.create({"source":"foobar","restaurantID":"foobar","itemMenuName":"foobar","itemSectionName":"foobar","itemName":"foobar","nRatings1":123,"nRatings2":123,"nRatings3":123,"nRatings4":123,"nRatings5":123,"hasImage":true,"imageSize":123,"latestImageRatingID":"foobar","imageCount":123,"lastUpdated":"foobar"}, function(err, response) {
        if (err) console.error(err);
        next();
    });

  });

};

修复一切,行为是预期的

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-09-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-11-08
    • 2015-06-27
    相关资源
    最近更新 更多