45

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

alert('Sample Alert');

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

ReferenceError:未定义警报

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

4

7 回答 7

76

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

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

于 2012-07-23T18:40:07.920 回答
12

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

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

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

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

  • 应用程序JS

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


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

console.log('hello');
于 2014-08-02T01:56:06.717 回答
0

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

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

结果:

x
undefined

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

于 2014-09-27T01:30:35.297 回答
0

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

process.stdin.on('char', function() {
  var chunk = process.stdin.read();
  if (chunk !== null) {
    process.stdout.write('data: ' + chunk + 'got?\n');
  }
});
于 2015-06-30T11:52:15.103 回答
0

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

console.log("Sample alert");

您可以在此处打印任何变量或常量...对于打印变量只需删除引号

于 2018-06-05T07:36:36.180 回答
0

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

于 2018-06-05T10:01:55.997 回答
-1

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

于 2020-11-03T23:21:00.730 回答