Как показать предупреждающее сообщение в node.js

Что я должен делать ?? Я работаю на 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: окно не определено

Нет окна с узлом. Он работает на сервере.

VtoCorleone 29.05.2019 05:25

Как я могу распечатать предупреждающее сообщение, сэр.

re.tk 29.05.2019 06:00

Можете ли вы сказать, зачем вам нужно: window.alert("sometext")? И вы пишете API, используя MongoDB с Nodejs?

Kevin Prasanna R R 29.05.2019 07:41
Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
2
3
12 359
4
Перейти к ответу Данный вопрос помечен как решенный

Ответы 4

Ответ принят как подходящий

NodeJS работает на консоли данной операционной системы, при этом window.alert на самом деле является командой API браузера, вы не можете использовать ее, в качестве альтернативы вы можете:

  1. Используйте console.info, который будет выводить информацию на STDOUT (он же стандартный вывод, он же будет просто печатать на консоли).
  2. Используйте console.error, который сделает то же самое, что и выше, но перенаправит содержимое в STDERR, что может быть полезно для ведения журнала или идентификации вывода процесса.
  3. Оберните ваше Node-приложение в контейнер типа Электрон, что, честно говоря, излишне.
  4. И, наконец, вызов родной диалоговый 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/диалог-узел

Jerry 30.01.2021 04:22

Предполагая, что вы знаете, на какой ОС вы работаете, самым надежным способом будет использование ее собственной оболочки (до сих пор большинство пакетов 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');

Другие вопросы по теме