我该怎么办?我在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:未定义窗口
答案 0 :(得分:1)
NodeJS在给定操作系统的控制台上运行,也就是说,window.alert实际上是浏览器API命令,您不能使用它,或者,您可以:
要调用本机对话框,您需要访问OS本机库,可以使用允许绑定这些库的Node FFI module来进行操作。 或者,为简单起见,只需使用该功能的现有实现之一,例如:node-native-dialog,mitsobox或dialog。
免责声明:我没有开发或无法证明那些产品的质量 模块,如果确实需要本机对话框,使用后果自负 根据您的开发,实现自己的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');