我正在使用meteor来做全栈javascript工作。我想使用mysql而不是mongodb。我在github上找到numtel:mysql,这是Meteor的Reactive MySQL。 在服务器端
Meteor.publish('test', function(){
let array = liveDb.select(
'select * from tasks',
[ { table: 'tasks' } ]
);
console.log('publish test mysql')
console.log(array);
return array;
});
在客户端
let mysqlData = new MysqlSubscription('test');
console.log('subscribe mysql data at client');
console.log(mysqlData);
console.log(mysqlData.length);
console.log(mysqlData.subscriptionId);
console.log(mysqlData[0]);
console.log(mysqlData[1]);
但是在客户端却无法获取到数据,并且出现了一个奇怪的现象,从日志中找到了mysqlData的数据,但是mysqlData.length为0,mysqlData[0]和mysqlData[1]未定义.
谁能帮助我?
最佳答案
您可能需要调用 mysqlData.reactive()
并首先使用 mysqlData.ready()
检查它是否准备就绪。
如果订阅不起作用(它不会自动更新数据),您应该确保按照installation instruction正确配置您的MySQL服务器。 .
对我来说,当我在数据库名称上使用大写字母时,我无法使其工作,您也应该检查它。
关于javascript - 无法使用 numtel :mysql for meteor 的 MysqlSubscription 获取数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39588848/