1

我正在尝试使用该execSync包来获得同步 shell 功能。虽然我最初由于缺少文件而遇到问题,但我通过在适当的目录中binding.node运行来解决它。现在,我可以毫无问题地调用节点内的函数。node-gypexecSyncexecSync

但是,当我尝试使用流星中的函数时,出现以下错误:

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;                                        
}    

我试图弄清楚服务器和客户端之间的交互。基本上,我正在尝试这样。客户端的函数需要一个字符串,该字符串由服务器端执行的 python 脚本返回。我尝试使用全局变量进行肮脏的破解,但这仍然无关紧要,因为脚本是异步运行的。我可以在没有同步执行的情况下做到这一点吗?我无法完全掌握客户端-服务器交互的模型,所以如果有正确的方法,请随时纠正我。

4

1 回答 1

0

由于您没有显示代码,因此我假设您的要求行失败。而不是标准的 node.js 要求您必须使用 Meteor 包装器

var require = __meteor_bootstrap__.require;
var path = require('path')
于 2013-01-11T03:48:59.630 回答