Javascript 在节点JS中发送请求并接收响应

Javascript 在节点JS中发送请求并接收响应,javascript,node.js,ajax,express,Javascript,Node.js,Ajax,Express,您好,我是NodeJS的新手,正在尝试了解客户机-服务器通信的工作原理 服务器上的文件-(express.js) 客户端上的AJax调用: $.ajax({ type: 'POST', url: '/action', data: foo.getJSON(), success: () => { console.log('Action done'); } }); 我的ajax调用发送一个JSON数据,服务器端实现一些函数,这些函数执行进一步的操作并返回true或f

您好,我是NodeJS的新手,正在尝试了解客户机-服务器通信的工作原理

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

客户端上的AJax调用:

$.ajax({
  type: 'POST',
  url: '/action',
  data: foo.getJSON(),
  success: () => {
    console.log('Action done');
  }
});
我的ajax调用发送一个JSON数据,服务器端实现一些函数,这些函数执行进一步的操作并返回true或false

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

首先,你没有为人们提供足够的代码来帮助你,这可能就是为什么你已经投了反对票。我会给你一些建议,让你去你需要去的地方,但如果你有进一步的麻烦,你需要张贴你所有的代码,并提出一个具体的问题

  • 如果您希望操作需要时间,doAction应该使用回调或承诺,但是我只能猜测而没有看到代码

  • 在app.post中,您需要将数据发送回客户端(否则他们将如何获取数据?),这在Express docs中有非常清楚的记录:

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

  • 为了让代码运行,请尝试以下操作

    app.post('/action',(req,res)=>{
    res.send(“请求完成”);
    });


    NodeJS是非阻塞的。因此,您需要Promissions或async/Wait来处理
    doAction()

    中的数据。没关系,我刚刚发布了这个问题以了解工作原理。对我来说没有问题陈述。这只是为了理解基本要点。另外,我想问,有没有什么方法可以在节点服务器中使用AJAX调用而不使用url属性来调用函数?
      app.post('/action', function(req, res){
        const status = resultOf.action.doAction(req);
        res.send(status);
      });