2013-01-10 33 views
1

我試圖用execSync包來獲得同步shell的功能。雖然我最初由於缺少binding.node文件而出現問題,但我通過在execSync目錄中運行node-gyp來解決此問題。現在,我可以在節點內調用execSync函數,沒有任何問題。execSync with meteor

然而,當我嘗試從流星內,我收到以下錯誤使用的功能:

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腳本返回的字符串。我使用全局變量嘗試了一種骯髒的黑客攻擊,但它仍然沒有關係,因爲腳本是異步運行的。我可以做到這一點沒有同步執行?我無法完全掌握客戶端 - 服務器交互的模型,所以如果有正確的方法去做,請隨時糾正我。

回答

0

由於您沒有顯示您的代碼,我假設您的需求線路失敗。而不是標準的node.js要求你必須使用流星包裝

var require = __meteor_bootstrap__.require; 
var path = require('path') 
+0

我編輯了問題與更多的信息。 – hosolmaz