在remoteRemote方法中使用strongloop创build相关的模型对象

说我有一个游戏场景。

游戏属于用户。

game.json:

{ "name": "game", "base": "PersistedModel", "idInjection": true, "properties": { "beer_points_required": { "type": "number", "required": true }, "total_points": { "type": "number", "required": true } }, "validations": [], "relations": { "game_blngs_to_user": { "type": "belongsTo", "model": "user", "foreignKey": "" } }, "acls": [], "methods": [] } 

user.json:

 { "name": "user", "base": "User", "idInjection": true, "properties": { "last_game": { "type": "date", "required": false }, "name": { "type": "string", "required": true } }, "validations": [], "relations": {}, "acls": [ { "accessType": "READ", "principalType": "ROLE", "principalId": "$everyone", "permission": "ALLOW" } ], "methods": [] } 

我试图通过CRUD创build用户之后以编程方式为用户创build游戏对象,所以在user.js中我有:

 var config = require('../../server/config.json'); var path = require('path'); var app = require('../app'); module.exports = function(user) { user.afterRemote('create', function(context, user) { console.log('> user.afterRemote triggered'); //create a game for each user thats created var Game = app.models.game; game.create({game_blngs_to_userId: user.id, beer_points_required: 0, total_points: 0},function(err, res){ if(err){ console.log('\n\n>>err'); console.log(err); next(err); return; } console.log(res); }); }); 

然而,这显然没有工作大声笑,所以我想知道如何实现我的目标。 我一直在盯着强大的循环文件很长一段时间,似乎实际使用他们的api没有那么好logging…至less在我眼里。 任何人都可以请为我阐明这一点?

也许,你错过了第三个参数 – afterRemotecallback中的next函数。

 user.afterRemote('create', function(context, user, next) { ... var Game = app.models.game; game.create({game_blngs_to_userId: user.id, beer_points_required: 0, total_points: 0},function(err, res){ if(err){ console.log(err); next(err); return; } next() // countinue execution }); }); 

我认为你的用户参考是未定义的…尝试:

app.models.user.afterRemote