【发布时间】:2013-01-12 03:54:45
【问题描述】:
我正在尝试使用 execSync 包来获得同步 shell 功能。虽然我最初因为缺少binding.node 文件而遇到问题,但我通过在正确的execSync 目录中运行node-gyp 解决了它。现在,我可以毫无问题地在节点内调用execSync 函数。
但是,当我尝试使用流星中的函数时,出现以下错误:
Running on: http://localhost:3000/
/usr/lib/meteor/bin/node: symbol lookup error: /home/onur/node_modules/execSync/node_modules/ffi/node_modules/ref/build/Release/binding.node: undefined symbol: _ZNK2v85Value6IsNullEv
Exited with code: 127
Your application is crashing. Waiting for file change.
注意:
通过网络快速检查表明该符号属于 V8 库。
守则
我在Meteor.methods中定义了以下内容。
getpuzzle: function (clu, lo, hi) {
var require = _meteor_bootstrap__.require;
var exec = require('execSync');
var sudoku_str = exec.stdout(path_sudoku_gen+" "+clu+" "+lo+" "+hi);
console.log(sudoku_str);
return sudoku_str;
}
我试图弄清楚服务器和客户端之间的交互。基本上,我正在尝试做this。客户端的函数需要一个字符串,该字符串由服务器端执行的 python 脚本返回。我尝试使用全局变量进行肮脏的破解,但这仍然无关紧要,因为脚本是异步运行的。我可以在没有同步执行的情况下做到这一点吗?我无法完全掌握客户端-服务器交互的模型,所以如果有正确的方法,请随时纠正我。
【问题讨论】: