Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/35.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何通过expressjs访问req.body?_Javascript_Node.js_Express_Server_Http Method - Fatal编程技术网

Javascript 如何通过expressjs访问req.body?

Javascript 如何通过expressjs访问req.body?,javascript,node.js,express,server,http-method,Javascript,Node.js,Express,Server,Http Method,收到expressjs请求时,我无法访问正文 我的主服务器.js文件 app.use(express.urlencoded({extended:true})); 使用(express.json()); 应用程序使用(路由器); 我的路由器.js文件 const express=require(“express”); const articlesContr=require(“../../controllers/articlesContr.js”); const router=express.ro

收到expressjs请求时,我无法访问正文

我的主服务器.js文件

app.use(express.urlencoded({extended:true}));
使用(express.json());
应用程序使用(路由器);
我的路由器.js文件

const express=require(“express”);
const articlesContr=require(“../../controllers/articlesContr.js”);
const router=express.router();
路由器
.get(“/articles”,articlesContr.handleGet)
.post(“/articles”,articlesContr.handlePost)
.put(“/articles”,articlesContr.handleUpdate)
.删除(“/articles”,articlesContr.handledelet);
adminPanelContr.js

const控制器={
handleGet:(请求、回复)=>{
const query=req.\u parsedUrl.query;
const parsedQuery=querystring.parse(查询);
//res.send(productsDb.getItem(parsedQuery));
控制台日志(req)
res.send(JSON.stringify(req.body))
}
};

GET请求没有正文参数。通常,
.get()
处理程序函数不查找它们

如果对GET和其他(POST、PUT、PATCH、DELETE)请求使用相同的处理程序函数,则需要在获取GET时避免查看正文

当您使用JSON正文发送请求时,不要忘记通过包含
Content-Type:application/JSON
HTTP头来告诉服务器它是JSON。通过这种方式,您可以确定express将调用其
express.json
中间件将主体解析为
req.body
对象

当您
.get()
get时,您不会得到请求正文。那里一定有某种打油诗

如果使用
res.json(object)
而不是
res.send(json.stringify(object))
express可以很好地将HTTP响应头设置为json的有用值


而且,我相信您知道这一点:使用自己的请求主体响应请求有点奇怪。

GET请求没有主体参数。通常,
.get()
处理程序函数不查找它们

如果对GET和其他(POST、PUT、PATCH、DELETE)请求使用相同的处理程序函数,则需要在获取GET时避免查看正文

当您使用JSON正文发送请求时,不要忘记通过包含
Content-Type:application/JSON
HTTP头来告诉服务器它是JSON。通过这种方式,您可以确定express将调用其
express.json
中间件将主体解析为
req.body
对象

当您
.get()
get时,您不会得到请求正文。那里一定有某种打油诗

如果使用
res.json(object)
而不是
res.send(json.stringify(object))
express可以很好地将HTTP响应头设置为json的有用值


而且,我相信你知道这一点:用自己的请求体响应请求有点奇怪。

当你控制台记录请求时,req的值是多少?@Kevin Yobeth,谢谢你的关注,当我控制台记录请求时,它不是一个未定义的对象,所有东西都像平常一样,但body属性是一个空对象。body:{}你到底是如何到达终点的?您是否使用HTTP客户端(如Postman)或前端应用程序?我正在使用Postman测试请求。在该正文中指定为原始、json、{“item”:{“name”:“Sofia”,“email”:myemail@gmail.com“}}GET请求没有
req.body
参数。请确保您点击此nodejs应用程序时发出POST或其他请求(非GET)以查看请求正文。还要检查您的请求是否带有
内容类型:application/json
头。当您控制台记录请求时,req的值是多少?@Kevin Yobeth,感谢您的关注,当我控制台记录请求时,它不是一个未定义的对象,所有内容都与正常情况类似,但body属性是一个空对象。body:{}你到底是如何到达终点的?您是否使用HTTP客户端(如Postman)或前端应用程序?我正在使用Postman测试请求。在该正文中指定为原始、json、{“item”:{“name”:“Sofia”,“email”:myemail@gmail.com“}}GET请求没有
req.body
参数。请确保您点击此nodejs应用程序时发出POST或其他请求(非GET)以查看请求正文。还要检查您的请求是否带有
内容类型:application/json
标题。是的,它只是为了检查目的,再次感谢是的,它只是为了检查目的,再次感谢