我试图从客户端组件中调用Meteor.method:
Meteor.call('execute', this.parameter);
Meteor.methods有一个函数可以产生如下过程:
cp.spawn(pathtoscript, ['-t', parameter.myid], options);
这是一个成功执行的有效进程spawn(最多需要30秒才能完成),但是在调用后,浏览器控制台会立即发出错误:
模拟调用'execute'TypeError的效果时出现异常: cp.spawn不是函数(...)TypeError:cp.spawn不是函数
我试过产生这个过程并退出该函数,我也试图等待'close'事件。两次在后端执行都是成功的,但是浏览器控制台会抛出异常。
我也试图异步调用Meteor.methods
Meteor.call('execute', this.parameter, function(error, result) {
if (error) {
alert(error, error.reason);
}
console.log(result);
});*/
在Meteor.methods中添加返回值。它总是以同样的方式结束。
在这种情况下,您能否告知产卵过程的正确方法?
答案 0 :(得分:0)
这是因为您的方法代码同时位于客户端和服务器中。它无法在客户端上运行,因为浏览器中没有spawn
。
要解决此问题,您只需将方法移动到服务器代码,或者只将其包含在条件为if
的{{1}}语句中:
Meteor.isServer