Javascript 当我保存模型时,主干网为什么在{model:{model_property:value,…}}内发送模型信息
我正在用node.js和backbone.js编写一个应用程序。然而,当我试图保存模型时,它将模型的JSON嵌套在模型字典中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 = 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;