3
我想知道如何在不輸入node script_name.js
的情況下運行該腳本。當我從終端啓動腳本時會顯示提示,但是當我嘗試將腳本作爲程序(從文件管理器,而不是命令行)運行時,它只是打開和關閉終端,而不顯示提示。爲什麼這個node.js腳本不能在終端中保持打開狀態?
#!/usr/local/bin/node
var prompt = require('prompt');
//var stuff = require("./stuff");
prompt.start();
prompt.get(['username', 'email'], function (err, result) {
if (err) { return onErr(err); }
console.log('Command-line input received:');
console.log(' Username: ' + result.username);
console.log(' Email: ' + result.email);
});
function onErr(err) {
console.log(err);
return 1;
}
下面是該計劃的預期輸出(帶輸入):
[email protected]:~/AeroFS/node.js examples$ node node_prompt_demo.js
prompt: username: blah
prompt: email: [email protected]
Command-line input received:
Username: blah
Email: [email protected]
當我從終端啓動它時腳本運行完美,但是當我從桌面或文件管理器中選擇「在終端中運行」時,該腳本不起作用。我仍然不明白爲什麼選擇「在終端中運行」時無法使用命令行提示符。 –
此外,這個問題可能是相關的(雖然我認爲它是爲bash腳本,而不是node.js):http://askubuntu.com/questions/20330/how-to-run-script-and-dont-close- a-terminal –
爲了澄清,我已經設置了腳本作爲應用程序運行的權限。它顯示正確的輸出並在我使用「node name_of_script.js」啓動腳本時給出正確的提示,但終端僅在我嘗試通過單擊「在終端中運行」運行腳本時打開和關閉。 –