2012-05-03 82 views
5

我正在製作遊戲服務器,並且我想在從SSH運行服務器後鍵入命令。 例如:addbot,generatemap,kickplayer等。如何在Node.js中運行服務器時執行控制檯命令

像在半條命或任何其他遊戲服務器。我怎樣才能讓Node.js監聽我的命令,並讓服務器在SSH中運行?

回答

10

您可以使用process.stdin這樣的:

process.stdin.resume(); 
process.stdin.setEncoding('utf8'); 

process.stdin.on('data', function (text) { 
    console.log(text); 
    if (text.trim() === 'quit') { 
    done(); 
    } 
}); 

function done() { 
    console.log('Now that process.stdin is paused, there is nothing more to do.'); 
    process.exit(); 
} 

否則,你可以使用助手庫,例如提示https://github.com/flatiron/prompt它可以讓你做到這一點:

var prompt = require('prompt'); 

// Start the prompt 
prompt.start(); 

// Get two properties from the user: username and email 
prompt.get(['username', 'email'], function (err, result) { 

    // Log the results. 
    console.log('Command-line input received:'); 
    console.log(' username: ' + result.username); 
    console.log(' email: ' + result.email); 
}) 
+0

工作的偉大,謝謝! – Nick

+0

「quit」命令不起作用:P好像「text」變量有這個文本+「enter」;)如何刪除這個輸入? – Piotrek

+0

@ Ludwik11使用.trim() – Masterakos

相關問題