如何在node.js中显示警报消息

时间:2019-05-29 03:11:43

标签: node.js alert

我该怎么办?我在node.js上工作。我不能使用alert(“ sometext”);

MongoClient.connect(url, function(err, db) {
  if (err) throw err;
  var dbo = db.db("project");

  dbo.collection("Register").findOne({Email:  req.body.email} , function(err, result) {
  if (result.Password == req.body.psw) {
      console.log("Correct go next page");
    }
    else{
      window.alert("sometext");
    });
    db.close();
  });
});

输出= ReferenceError:未定义窗口

4 个答案:

答案 0 :(得分:1)

NodeJS在给定操作系统的控制台上运行,也就是说,window.alert实际上是浏览器API命令,您不能使用它,或者,您可以:

  1. 使用console.log将在STDOUT上输出信息(又称标准输出,也就是仅在控制台上打印)。
  2. 使用console.error,该操作与上面的操作完全相同,但是会将内容通过管道传输到STDERR,这对于日志记录或过程输出识别目的很有用。
  3. 将您的Node应用程序包装在Electron之类的容器上,老实说,这太过分了。
  4. 最后,从您的操作系统调用本地对话框API

要调用本机对话框,您需要访问OS本机库,可以使用允许绑定这些库的Node FFI module来进行操作。 或者,为简单起见,只需使用该功能的现有实现之一,例如:node-native-dialogmitsoboxdialog

  

免责声明:我没有开发或无法证明那些产品的质量   模块,如果确实需要本机对话框,使用后果自负   根据您的开发,实现自己的OS库绑定。

答案 1 :(得分:0)

假设您知道运行的是哪个操作系统,最可靠的方法是使用其本机外壳(到目前为止,我尝试过的大多数NPM软件包都无法立即使用)。对于Windows Powershell,它看起来可能像这样:

const { spawnSync } = require('child_process');

const messag = "Hello world";

spawnSync("powershell.exe", [`
Add-Type -AssemblyName PresentationCore,PresentationFramework;
[System.Windows.MessageBox]::Show('${messag}');
`]);

您还可以显示提示,例如“是/否”等。查看更多信息here

更新 dialog package似乎可以立即使用,尽管看上去没有PowerShell可用的选项那么多。

答案 2 :(得分:0)

我找不到文档的记录位置,但是我一直在global.alert()代码中使用react-native进行调试。该应用受Appium控制,因此我无法使用console.log

答案 3 :(得分:0)

为节点和浏览器安装跨平台、同构警报(以前称为警报节点) npm i alert -g

使用这个库:

var alert = require('alert');
alert('Hello');