2016-03-15 74 views
1

我試圖建立使用電子應用程序,它的設計後得到一個GUI,但現在我只是想做到這一點:電子的Readline

function test(){ 

    console.log("In Test") 

    var readline = require('readline'); 
    var rl = readline.createInterface({ 
    input: process.stdin, 
    output: process.stdout 
    }); 

    rl.on('line', function(line){ 
    console.log(line); 
    }) 

} 

// This method will be called when Electron has finished 
// initialization and is ready to create browser windows. 
app.on('ready', test); 

關於開展npm start,我看到了「 In Test「日誌,但是當我在我的shell中鍵入內容時,它不會返回給我,因爲我需要它通過Readline模塊。

我錯過了什麼嗎?

回答

4

在電子控制檯中,控制檯變成了與您習慣使用的終端不同的Chromium控制檯。據我所知,Readline不會工作。 Chromium中的閃爍控制檯不支持這種閱讀輸入。它的運行更像一個調試REPL,您可以在其中鍵入JS代碼,檢查變量等。這不適合用戶輸入。我不認爲你將能夠從該控制檯獲得輸入到stdin,這是readline模塊等待查看數據的地方。


更新

我認爲OP使用開發者工具控制檯期待它像一個殼工作。他正在使用它。實際的問題是a bug與Windows上的節點的readline模塊。節點開發者正在積極努力解決它。這是一個回退bug,之前曾經修復過,但在最近版本的節點中又出現過。

+1

您的評論非常清楚,我根本就不知道! 這是一個非常有用的事情要知道。 (這就解釋了很多..)。 我最終發現了一個小竅門:在循環中使用'readSync'。 – Addict

+1

很高興我能幫到:) – Chev

+0

我可以輸入什麼命令查看它是否在運行Chromium控制檯?我嘗試了一個'console.log(「test」)'但沒有發生任何事情。 – Addict