Окно вызова.предупреждение от NodeJS

#javascript #node.js #backend

Вопрос:

Поэтому я создаю веб-приложение NodeJS, которое включает в себя сохранение данных с помощью Мангуста, как показано ниже.

Мне нужно показать всплывающее окно, когда сохранение будет выполнено.

 // Update the user model
    User.updateOne({userId: request.user.userId}, {$push: {saved: [parseInt(request.query.saveId)]}}, function(error, success){
            if(error){
                console.log(error)
            } else {
             // 
             // Show a window alert in javascript here

            }
    });
 

Хотя я знаю, что NodeJS и JS имеют совершенно разные функции, могу ли я как-нибудь вызвать window?оповещение через NodeJS, возможно, по какому-то URL-адресу?

Комментарии:

1. Пожалуйста, скажите, используете ли вы механизм просмотра или обслуживаете HTML-страницы напрямую?

2. Да, я использую ejs. Однако я не хочу, чтобы страница обновлялась

Ответ №1:

В свой файл ejs добавьте тег сценария, подобный этому

 <script>
    fetch('/users/update', { method:'POST',data: JSON.stringify(user)  }})
         .then(res => res.json())
         .then(data => window.alert(data))
         .catch(err => window.alert("Error updating user:"   err.message))
</script>
 

Внутри JSON.stringify(user) user объект должен быть получен из рендеринга

И создайте маршрут, который соответствовал /users/update бы БД, и сделайте все здесь

 app.post('/users/update',(req,res) => {
    User.updateOne({userId: req.user.userId}, {$push: {saved: [parseInt(request.query.saveId)]}}, function(error, success){
            if(error){
                 res.status(500).json({message: erroe.message})
            } else {
                 res.json({message: "User updated"})
            }
    });
})