- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我似乎无法在我的服务器上显示 body 数据。我实际上试图在 post/put/fetch 调用中获取它,但为了解决这个问题,我将它归结为一个简单的 .get,但它仍然不会出现。任何人都可以看到为什么 body 没有显示在服务器上吗?由于这个原因,我无法在更复杂的调用中完成任何事情(比如获取请求的主体,但现在坚持这个简单的例子。)
这段代码可以正常工作并发送数据,只是似乎无法访问服务器上的正文。
server.js
const express = require('express');
const app = express();
var bodyParser = require('body-parser');
app.use(bodyParser.json());
const port = process.env.PORT || 8000;
const Cat = require('./Cat');
const Dog = require('./Dog');
app.route('/animals')
.get(function (req, res) {
console.log(req.body, 'req.body log'); //this returns {}
res.send({ Cat, Dog });
})
app.listen(port, () => console.log(`Listening on port ${port}`));
在react中,如果我调用下面的callApi()
函数,console.log会在前端正常显示body数据,并且可以在页面上使用数据。
客户电话
callApi = async () => {
const response = await fetch('/animals');
const body = await response.json();
console.log(body) //shows all the data just fine!
if (response.status !== 200) throw Error(body.message);
return body;
};
使用 Node 9 并表达 4。
最佳答案
我认为您混淆了请求和响应对象。但除此之外,我将解释从何处/如何获取从 GET 和 POST/PUT 请求传入的数据。
当发出 GET 请求时,您可以通过查询参数(即/animals?type=cat)将数据传递到服务器。这些参数将在一个名为 req.query
的对象中解析后可用。
当发出 POST 或 PUT 请求,并且您应用了正文解析中间件(您已经完成),JSON 将作为解析对象在 req.body
下可用。
在您的示例中,您发出了 GET 请求,但没有提供任何查询字符串参数。所以 req.body
将返回一个空对象,req.query
也是如此。
您的客户端调用显示数据,因为您已通过 res.send()
在响应中发回数据。这与为什么 req.body
在您的案例中是一个空对象完全无关。
尝试在客户端调用中使用 fetch('/animals?type=cat')
。然后,您将看到 req.query
返回 { type: 'cat' }
。
关于javascript - 对如何获取 req.body 感到困惑,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48434677/
我正在尝试学习Rust。我正在阅读一本书online,该书实现了unix程序cat。现在,我试图读取作为像cargo run file1.txt file2.txt这样的参数传递的文件的内容,但是程序
我在 GHC 8.0.1 中遇到了一个带有种类索引 (?) GADT 的奇怪情况,其中在类型与种类签名中引入 foralls 会产生不同的类型检查行为。 考虑以下数据类型: {-# LANGUAGE
我正在使用 Perl 5.10 开发应用程序,HTML::Mason和 Apache 2.2。这是我第一次在大型项目中使用 Perl 5.10。我每隔一段时间就会出现奇怪的行为。应用程序因一个非常奇怪
我正在尝试将文件上传到aws中的rust中,因为我使用的是 rusoto_s3 的s3 rust客户端,当这些部分从单个线程发送时,我设法使分段上传代码正常工作不是我想要的,我想上传大文件,并且希望能
我是一名优秀的程序员,十分优秀!