在Node JS中发送请求并接收响应

时间:2017-11-13 01:52:45

标签: javascript node.js ajax express

您好我是Node JS的新手,并试图了解客户端服务器通信的工作情况。

服务器上的文件 - (express.js)

  app.post('/action', (req, res) => {
    const status = action.doAction(req);
  });

AJax Call on Client:

$.ajax({
  type: 'POST',
  url: '/action',
  data: foo.getJSON(),
  success: () => {
    console.log('Action done');
  }
});

我的ajax调用发送一个JSON数据,服务器端实现了一些执行进一步操作并返回true或false的函数。

但是在客户端控制台上取得成功并没有打印出来。另外,我想了解如何通过响应对象将数据(即状态)从服务器发送回客户端,以及如何在客户端接收和打印。此外,我想在完成doAction函数中的所有操作后打印成功,这需要大约2-4秒。  有人可以解释如何实现这一切吗?

2 个答案:

答案 0 :(得分:1)

首先,你没有提供足够的代码供人们帮助你,这可能就是你已经投票的原因。我会给你一些指导,让你到达你需要去的地方,但如果你有进一步的麻烦,你需要发布所有代码并提出具体问题。

  1. 如果您希望操作需要时间,doAction应该使用回调或承诺,但我只能在不看代码的情况下猜测

  2. 在你的app.post中,你需要将数据发送回客户端(他们怎么会得到它?),这在Express文档中有相当清楚的记载:

      app.post('/action', function(req, res){
        const status = resultOf.action.doAction(req);
        res.send(status);
      });
    

答案 1 :(得分:0)

为了让你的代码运行,试试这个

app.post('/action', (req, res) => { res.send('request done'); });

NodeJS是非阻塞的。所以你需要promises或async / await来处理doAction()

中的数据