Node.js警报导致崩溃

47

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

alert('Sample Alert');

我的程序崩溃了,Node 报错:

ReferenceError: alert is not defined

然后就退出了。在常规的 HTML 页面上运行 JavaScript 时,我可以使用 alert 函数,所以我不知道为什么会这样... 难道这是我必须在 node.js 中使用的另一个模块吗?


9
除了这个链接中提到的内容,任何内容都不属于标准的 JavaScript。 - Esailija
1
@Esailija - 从技术上讲,常规的JavaScript 应该具有alert,因为JavaScript是ECMAScript的一个分支,通常在浏览器中实现。你可能指的是ECMAScript。 - Derek 朕會功夫
8个回答

79

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

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


8
你的问题实际上没有任何意义。你的服务器代码可以在HTTP请求的响应中发送错误,然后,反过来,一些在客户端浏览器中运行的独立JavaScript代码可以呈现警报。这与组成你的服务器端应用程序的JavaScript代码直接关系不大。 - Pointy

12

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');

0

你还需要代码来等待按键。这是一个开始:

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

0

Alert函数是用于浏览器的,也就是前端。在Node.js中,如果要在命令行或Bash中打印内容,应该使用这个函数。

console.log("Sample alert");

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


0

由于像DOM和警报这样的东西是为您的浏览器执行而设计的,因此您无法在nodejs环境中使用它们。 请使用

console.log('Sample Alert');

或者如果你想使用DOM或警告,可以按照以下步骤-->

你可以先为你的HTML文件创建一个单独的.js文件,然后将这两个文件链接起来...

注意:确保路径正确(对于.ejs用户,请确保相对于你的公共文件夹给出路径),现在你可以使用你的警告了。

希望这能帮到你.....


0

alert() 属性只被浏览器允许,而不是 JavaScript。


0
虽然这些答案是“正确”的,因为在浏览器之外没有可用的警告功能,但你完全可以创建一个警告函数并使用它:
node -e "function alert(x){ 
            x === 'undefined' ? console.log('undefined') : console.log(x); return; 
         }; 
         alert('x'); alert();"

结果:

x
undefined

那么你可能不需要更改你现有的代码、示例或任何东西。


-1

我没有看到它的文档,但我一直在我的react-native代码中使用global.alert()。我用它来进行调试,因为我正在运行一个Appium测试,所以我无法访问console.log()输出。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接