【发布时间】:2015-07-11 10:10:48
【问题描述】:
我从客户端调用服务器函数,它执行 UNIX 命令并在服务器上获取输出,但我需要将结果返回给调用它的客户端函数。我在服务器上得到输出,但 Meteor.call 立即返回结果 undefined,bc exec 命令需要一些时间才能运行。任何建议如何延迟获得结果并绕过这个问题?
客户电话:
if (Meteor.isClient) {
Template.front.events({
'click #buttondl': function () {
if (inputdl.value != '') {
var link = inputdl.value;
Meteor.call('information', link, function(error, result) {
if (error)
console.log(error);
else
console.log(result);
});
}
}
});
}
服务器方法:
Meteor.methods({
information: function (link) {
exec = Npm.require('child_process').exec;
runCommand = function (error, stdout, stderr) {
console.log('stdout: ' + stdout);
console.log('stderr: ' + stderr);
if(error !== null) {
console.log('exec error: ' + error);
}
return stdout;
}
exec("youtube-dl --get-url " + link, runCommand);
}
});
【问题讨论】:
标签: javascript node.js meteor