Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/36.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
Node.js json请求体解析_Node.js_Express_Body Parser - Fatal编程技术网

Node.js json请求体解析

Node.js json请求体解析,node.js,express,body-parser,Node.js,Express,Body Parser,我的json请求正文是{user:'guow'},而express request.body是{{{user:\'guow\'}}:} 这是我的express应用程序的配置 "name": "body-parser", "version": "1.13.3", 我正在用jquery发送请求,我的代码是 var bodyParser = require('body-parser'); // var multer = require('multer'); app.use(bodyParser.js

我的json请求正文是{user:'guow'},而express request.body是{{{user:\'guow\'}}:}

这是我的express应用程序的配置

"name": "body-parser", "version": "1.13.3",
我正在用jquery发送请求,我的代码是

var bodyParser = require('body-parser'); //
var multer = require('multer');
app.use(bodyParser.json()); // for parsing application/json
app.use(bodyParser.urlencoded({ extended: false })); // for parsing application/x-www-form-urlencoded //
app.use(multer());

有人会遇到这样的问题吗?

我不是node.js方面的专家,但我在其他上下文中也遇到过类似的问题

我认为您应该在json请求中将“单引号改为双引号”,因为单引号将被解释为文本。json希望将该请求声明为{user:guow}

只要我的两分钱

此外,其他问题的公认答案也很重要:


在代码的某个地方,整个主体{user:'guow}被设置为对象的字符串键。注意原始对象{{user:\'guow\'}}:}周围的单引号

您需要检查对象是如何传递给send函数的。差不多

$.ajax({ type: "POST",
         url: "/login",
         cache: false,
         dataType: 'json',
         data:{"user":"guow"}
      });

应该可以。

如何发布请求?jQuery$.ajax{type:“post”,url:“/login”,cache:false,dataType:'json',data:{user:'guow'};您是如何将主体解析器配置到express应用程序的。添加配置代码。var bodyParser=require'body-parser';//var multer=require'multer';app.usebodyParser.json;//用于解析应用程序/json app.usebodyParser.urlencoded{extended:false};//用于解析应用程序/x-www-form-urlencoded//app.usemulter;//用于解析多部分/form-data@user891530您不需要发送字符串化对象。只需使用:$.ajax{type:“POST”,url:“/login”,cache:false,dataType:'json',data:{user:grow};结果是一样的。正如我所说的,我不是node.js方面的专家。事实上,我本来会发表评论的,但由于代表率低,我还不能发表评论。你的请求正文似乎也成为了express request.body的关键。我同意你应该检查你发布请求的方式。我可以问一下否决投票的确切原因吗?只是出于好奇。降低我的代表doeit’如果一条评论可能会有帮助的话,那么我就永远不能发表评论而不是答案了。没有双关语的意思谢谢你,现在我在这个社区的生活会有所改善,我的答案也会有所改善!如果你想发送JSON,那么你必须发送一个字符串。之前的值只是无效的JSON。如果你传递jQuery对象,那么它将发送www表单url编码的数据,不是JSON。@昆汀:你是说数据:JSON.stringify{user:guow}这是正确的方法吗?或者手动构造一个有效的JSON字符串。您还需要正确指定内容类型,因为jQuery的默认值对于JSON是错误的。重新编辑:将内容类型设置为JSON,同时将数据值设置为对象是行不通的。您必须将JSON编码的字符串分配给data、 @Quentin如果你知道正确的答案,为什么不添加或编辑答案。
$.ajax({ type: "POST",
         url: "/login",
         cache: false,
         dataType: 'json',
         data:{"user":"guow"}
      });
res.send({user:'guow'});