获取错误:使用Sails.js Pub / Sub调用`Model.room(id)`时必须指定`id`
我试图使用发布/子方法,并得到这个错误垃圾邮件:
error: Must specify an `id` when calling `Model.room(id)`
我的模型看起来像这样:
module.exports = { tableName: 'accounts', autoPk: false, attributes: { 'id': { type: 'INTEGER', primaryKey: true, columnName: 'id' }, 'alias': { type: 'STRING', required: true } };
然后我的控制器方法:
'subscribe': function(req, res) { Account.find({'select': ['steam_id', 'online']}) .then(function(users) { Account.subscribe(req.socket, users); }) .catch(function(err) { console.log(err); }); }
最后,我的客户端js订阅:
socket.on('connect', function connectedToSockets() { console.log('Subscribing'); socket.get('/friends/subscribe'); socket.get('/user/subscribe'); });
我不能为了我的生活,弄清楚为什么我被这个错误字面上垃圾邮件,所有的修复说,设置一个列上的PrimaryKey,
我正在使用sails-mysql
适配器
谢谢!
所以对任何有这个问题的人,我都明白了:
我没有从订阅中的查询中返回ID,所以当我添加了ID以及错误消失时,我想它只是需要ID作为参考。
'subscribe': function(req, res) { Account.find({'select': ['id', 'steam_id', 'online']}) .then(function(users) { Account.subscribe(req.socket, users); }) .catch(function(err) { console.log(err); }); }
这固定它,添加id