Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/14.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 当我保存模型时,主干网为什么在{model:{model_property:value,…}}内发送模型信息_Javascript_Json_Node.js_Backbone.js_Mongoose - Fatal编程技术网

Javascript 当我保存模型时,主干网为什么在{model:{model_property:value,…}}内发送模型信息

Javascript 当我保存模型时,主干网为什么在{model:{model_property:value,…}}内发送模型信息,javascript,json,node.js,backbone.js,mongoose,Javascript,Json,Node.js,Backbone.js,Mongoose,我正在用node.js和backbone.js编写一个应用程序。然而,当我试图保存模型时,它将模型的JSON嵌套在模型字典中 node = new NodeModel({prop1:"value1", prop2:"value2"}); node.save(); console.log(请求主体)的结果;在我的节点控制器显示 {model: {"prop1":"value1", "prop2":"value2"} } 如果我使用标准html表单将console.log(req.body)的结

我正在用node.js和backbone.js编写一个应用程序。然而,当我试图保存模型时,它将模型的JSON嵌套在模型字典中

node = new NodeModel({prop1:"value1", prop2:"value2"});
node.save();
console.log(请求主体)的结果;在我的节点控制器显示

{model: {"prop1":"value1", "prop2":"value2"} }
如果我使用标准html表单将console.log(req.body)的结果发布到同一个节点控制器;显示


如何获取node.save();函数来发布与常规HTML相同的JSON?

看起来您已经将主干配置为:

emulateJSON
Backbone.emulateJSON=true

如果您使用的旧web服务器无法处理编码为
application/json
的请求,请设置
Backbone.emulateJSON=true
将导致JSON在
模型
参数下序列化,并使用
应用程序/x-www-form-urlencoded
mime类型发出请求,就像来自HTML表单一样

相应的
Backbone.sync
块如下所示:

if (!options.data && model && (method == 'create' || method == 'update')) {
  params.contentType = 'application/json';
  params.data = JSON.stringify(model.toJSON());
}
//...
if (Backbone.emulateJSON) {
  params.contentType = 'application/x-www-form-urlencoded';
  params.data = params.data ? {model: params.data} : {};
}
您可以在第一个
if
中看到
model.toJSON()
调用,
model:
前缀出现在第二个
if
中。你应该能够说

Backbone.emulateJSON = false;

在您的应用程序设置中的某个地方(在主干加载之后,在您尝试同步任何东西之前),并且
模型:
业务将消失。

@alex:有意义被高估了,除非它工作正常。我在澳大利亚日(这在惠斯勒是一件大事)学到了这一点。@Mu特卢斯冬季经典?
Backbone.emulateJSON = false;