【发布时间】: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