如何在Express / Node JS的服务器端调用AJAX函数?

时间:2019-05-05 08:26:46

标签: node.js express

以下是我在Node js中的POST函数。我想在客户端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 :(得分:0)

简单的答案是“否”。但是有一些解决方法,我已经展示了一种适合您情况的方法

套接字

您可以使用Web套接字触发事件以通知客户端运行特定功能

在服务方面,您可以执行以下操作:

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