【问题标题】:Node.js Alert Causes CrashNode.js 警报导致崩溃
【发布时间】:2012-07-22 00:55:33
【问题描述】:

我正在尝试创建一个 node.js 应用程序和

alert('Sample Alert');

导致我的程序崩溃。节点说

ReferenceError: 未定义警报

然后退出。在常规 html 页面上运行 javascript 时,我可以使用 alert 函数,所以我不明白为什么会这样......这是我必须与 node.js 一起使用的单独模块吗?

【问题讨论】:

  • this 之外的任何东西都不是常规的 javascript
  • @Esailija - 技术上常规的 JavaScript应该alert,因为 JavaScript 是 ECMAScript 的一个分支,通常在浏览器中实现。你的意思可能是 ECMAScript。

标签: javascript node.js alert


【解决方案1】:

alert() 函数是浏览器window 对象的属性。它实际上并不是 JavaScript 的一部分。它只是该环境中 JavaScript 代码可用的工具。

试试console.log("Hello World");

【讨论】:

  • 你的问题没有任何意义,真的。您的服务器代码可以将错误作为对 HTTP 请求的响应的一部分发送出去,然后,在客户端浏览器中运行的一些 单独 JavaScript 代码可以显示警报。这与构成服务器端应用程序的 JavaScript 代码几乎没有直接关系。
【解决方案2】:

alert() 函数仅在您在浏览器窗口的特殊上下文中执行 JavaScript 时可用。它可以通过window 对象获得。

Node.js 不适用于(直接)编写桌面应用程序。它主要用于编写服务器端 JavaScript 应用程序。如果您想开发真正的桌面应用程序,可以使用以下框架/包(以及更多)。

  • Electron
  • NW.js(以前是 node-webkit)

    NW.js 是基于Chromiumnode.js 的应用运行时。您可以使用 NW.js 以 HTML 和 JavaScript 编写本机应用程序。它还允许您直接从 DOM 调用 Node.js 模块,并启用一种使用所有 Web 技术编写本机应用程序的新方法。

  • AppJS

    可作为独立发行版和 npm 包使用


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

console.log('hello');

【讨论】:

    【解决方案3】:

    虽然这些答案是“正确的”,因为在浏览器之外没有可用的警报功能,你没有理由不能创建一个然后使用它:

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

    结果:

    x
    undefined
    

    那么您可能不需要更改现有代码或示例或其他任何内容。

    【讨论】:

      【解决方案4】:

      您还需要代码来等待密钥。这是一个开始:

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

      【讨论】:

        【解决方案5】:

        警报功能适用于浏览器。表示前端..在 nodejs 中用于在 cmd 或 bash 中打印你应该使用这个..

        console.log("Sample alert");
        

        您可以在这里打印任何变量或常量...打印变量只需删除引号

        【讨论】:

          【解决方案6】:

          alert() 属性仅允许浏览器使用,JavaScript 不允许使用。

          【讨论】:

            【解决方案7】:

            我没有看到它记录在哪里,但我一直在我的 react-native 代码中使用 global.alert()。我将它用于调试目的,因为我正在运行 Appium 测试,所以我无权访问 console.log() 输出。

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 2018-05-08
              • 1970-01-01
              相关资源
              最近更新 更多