Как я могу вызвать функцию AJAX со стороны сервера в Express / Node JS? - PullRequest
0 голосов
/ 05 мая 2019

Следом идет моя POST функция в узле js.Я хочу вызвать функцию в моем клиентском HTML-коде, чтобы отобразить сообщение об ошибке на странице.

router.post('/',(req,res)=>{

    const data = JSON.stringify({
        institute_name: req.body.institute_name,
        email : req.body.email,
        password : req.body.password
    })
    const options = { 
        host:'localhost',
        port:'8888',
        path:'/registerInstitute',
        method:'POST',
        headers: {
            'Content-Type':'application/json'
        }
    }
    const req1 =  http.request(options, (res1)=>
    {

        const status = res1.statusCode

        if (status == 201)
        {
            //admin created
            res.redirect('/?account_created=true')
        }

        else if ( status == 409)
        {
            //CALL AJAX FUNCTION TO DISPLAY ERROR MSG
        }

    })

    req1.write(data)
    req1.end()
})

1 Ответ

0 голосов
/ 05 мая 2019

Простой ответ - НЕТ.Но для этого есть обходные пути, и я продемонстрировал тот, который подойдет вашему сценарию

Сокеты

Вы можете использовать веб-сокеты для запуска события, чтобы уведомить клиентазапустить определенную функцию

На стороне службы вы можете сделать что-то вроде этого:

var io = require('socket.io').listen(80); // initiate socket.io server
if (
io.sockets.on('connection', function (socket) {
  if ( error == 403 ) {
    socket.emit('runErrorFunction', { error: "error data" });
  }
});

Вы можете сделать что-то подобное на стороне клиента:

<script src="/socket.io/socket.io.js"></script>
<script>
  var socket = io.connect('http://localhost'); // connect to server
  socket.on('runErrorFunction', function (data) { // listen to runErrorFunction event raised by the server
   // Here goes your error showing logic

  });
</script>

Вотссылка для получения дополнительной информации Socket.io

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...