2012-07-23 45 views
18

我試圖創建一個應用程序的Node.js和Node.js的警報導致崩潰

alert('Sample Alert'); 

導致我的程序崩潰。節點說

ReferenceError: alert is not defined

然後退出。在常規html頁面上運行javascript時,我可以使用alert函數,所以我不知道爲什麼這是...這是一個單獨的模塊,我必須使用node.js?

在此先感謝。

+8

任何外界[這](http://ecma-international.org/ecma-262/5.1/)不是常規的JavaScript – Esailija 2012-07-23 18:42:18

+1

@Esailija - 技術上常規的JavaScript *應*有'警報'因爲JavaScript是通常在瀏覽器中實現的ECMAScript的一個分支。你的意思可能是ECMAScript。 – 2014-07-20 04:36:50

回答

42

alert()功能是瀏覽器window對象的屬性。它不是JavaScript的真正組成部分;它只是該環境中JavaScript代碼可用的工具。

嘗試,當你在瀏覽器窗口的特殊語境中執行JavaScript console.log("Hello World");

+6

你所問的沒有任何意義,真的。您的服務器代碼可以將錯誤作爲對HTTP請求的響應的一部分發送出去,然後在客戶端瀏覽器中運行的一些**單獨** JavaScript代碼可以顯示警報。這與構成服務器端應用程序的JavaScript代碼無關。 – Pointy 2012-07-23 18:44:23

6

alert()功能纔可用。它可以通過window對象獲得。

Node.js不適用於編寫桌面應用程序(直接)。它主要用於編寫服務器端JavaScript應用程序。如果您想開發真正的桌面應用程序,您可以使用以下框架/軟件包(以及更多)。

  • Electron
  • NW.js(以前,節點的webkit)

    NW.js is an app runtime based on Chromium and node.js . You can write native apps in HTML and JavaScript with NW.js. It also lets you call Node.js modules directly from the DOM and enables a new way of writing native applications with all Web technologies.

  • AppJS

    Available as an standalone distributable and an npm package


同時,您可以使用console.log()在Node.js中輸出消息。

console.log('hello'); 
0

雖然這些問題的答案是「正確的」,因爲是瀏覽器沒有報警功能可用之外,沒有任何理由,你不能創建一個,然後使用它:

node -e "function alert(x){ 
      x === 'undefined' ? console.log('undefined') : console.log(x); return; 
     }; 
     alert('x'); alert();" 

結果:

x 
undefined 

然後,你可能不需要改變你現有的代碼或例子或任何其他。

0

您還需要代碼來等待密鑰。這裏是一個開始:

process.stdin.on('char', function() { 
    var chunk = process.stdin.read(); 
    if (chunk !== null) { 
    process.stdout.write('data: ' + chunk + 'got?\n'); 
    } 
});