从NodeJS Express POST响应中获取响应正文

时间:2018-02-13 21:23:03

标签: node.js express body-parser

我遇到了NodeJS和Express的问题,好像它应该是“Hello World”简单,但一整天都在困扰我。这是我的NodeJS POST代码:

app.post('/evaluateScore', (req, res) => {
  output = calculators
    .evaluateScore({
      handicap: req.body.handicap,
      score: req.body.score,
      rating: req.body.rating,
      slope: req.body.slope,
      holes: req.body.holes
    })
   console.log(output)
   res.mydata = {}
   res.mydata.output = output
   console.log("res.mydata.output: " + res.mydata.output)
   res.end()
})

以下是调用它的客户端代码:

post('/evaluateScore', { handicap, score, rating, slope, holes })
    .then(({ mydata }) => {
        console.log(mydata)
        Evaluator.querySelector('.result').value = mydata.output
        })

我的问题是,无论我尝试使用在POST服务器端正确生成的{output}值,我都无法将其成功发送回客户端。我尝试过各种各样的事情:

res.json
res.send
res.data

我发现线程声称每个都以某种方式工作,但客户端似乎唯一可以访问的是'status',我可以使用res.sendStatus(XXX)发送呼叫,或默认为200。

提前致谢

1 个答案:

答案 0 :(得分:0)

有任何错误吗? console.log()行揭示了什么?

这不起作用吗?

app.post('/evaluateScore', (req, res) => {
  output = calculators
    .evaluateScore({
      handicap: req.body.handicap,
      score: req.body.score,
      rating: req.body.rating,
      slope: req.body.slope,
      holes: req.body.holes
    });
   console.log(output);
   res.json(output);
});

另外,也许在调用者中可以这样:

post('/evaluateScore', { handicap, score, rating, slope, holes })
    .then(mydata => {
        console.log(mydata);
        Evaluator.querySelector('.result').value = mydata
    });