Что я должен делать ?? Я работаю на 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.info("Correct go next page");
}
else{
window.alert("sometext");
});
db.close();
});
});
вывод = ReferenceError: окно не определено
Как я могу распечатать предупреждающее сообщение, сэр.
Можете ли вы сказать, зачем вам нужно: window.alert("sometext")? И вы пишете API, используя MongoDB с Nodejs?
NodeJS работает на консоли данной операционной системы, при этом window.alert на самом деле является командой API браузера, вы не можете использовать ее, в качестве альтернативы вы можете:
Чтобы вызвать собственный диалог, вам нужен доступ к собственным библиотекам ОС, вы можете сделать это с помощью Модуль узла FFI, который позволяет вам привязывать эти библиотеки. Или, для простоты, просто используйте одну из существующих реализаций этой функции, например: узел-родной-диалог, Митсобокс или диалог.
Disclaimer: I did not develop or can attest the quality of those modules, use at your own risk, if native dialogs are really required to your development, implement your own binding of the OS libraries.
Это может быть полезно: github.com/bat-tomr/диалог-узел
Предполагая, что вы знаете, на какой ОС вы работаете, самым надежным способом будет использование ее собственной оболочки (до сих пор большинство пакетов 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}');
`]);
Вы также можете показывать подсказки, например да/нет и т. д. Подробнее см. здесь.
Обновлятьдиалоговый пакет, кажется, работает из коробки, хотя, похоже, у него не так много возможностей, как у PowerShell.
Я не могу найти, где это задокументировано, но я использовал global.alert()
в своем react-native
коде для целей отладки. Приложение контролируется Appium
, поэтому я не могу использовать console.info
.
Установить кроссплатформенное изоморфное оповещение для узла и браузера (ранее — оповещение-узел)
npm i alert -g
Используйте эту библиотеку:
var alert = require('alert');
alert('Hello');
Нет окна с узлом. Он работает на сервере.