编辑:这不是服务器端问题。请仔细阅读问题。
我正在使用Mongoose,Express,Node和Angular构建解决方案。我正在尝试发送我的Mongoose模式文件客户端进行解析。我已成功获取控制器脚本(客户端)中的对象中的数据,结构如下:
{
href: {type: String},
text: {type: String, trim:true},
dropdown: {type: Boolean},
dropdownList: {type: Array}
}
这是通过$scope.$apply
传递的(因为它正在回调中收到),并且在HTML中收到它,如下所示:
{
href: {},
text: {trim:true},
dropdown: {},
dropdownList: {}
}
拥有数据类型对我的实现非常重要。有什么想法吗?
答案 0 :(得分:1)
如果您不关心猴子修补功能对象,您可以这样做。
在res.json代码在服务器或客户端浏览器中运行之前的任何地方添加以下内容。
Function.prototype.toJSON = function() { return this.name; }
使用节点
进行测试# node
> var schema = {
... href: {type: String},
... text: {type: String, trim:true},
... dropdown: {type: Boolean},
... dropdownList: {type: Array}
... }
undefined
> schema
{ href: { type: [Function: String] },
text: { type: [Function: String], trim: true },
dropdown: { type: [Function: Boolean] },
dropdownList: { type: [Function: Array] } }
> JSON.stringify(schema)
'{"href":{},"text":{"trim":true},"dropdown":{},"dropdownList":{}}'
> Function.prototype.toJSON = function() { return this.name; }
[Function]
> JSON.stringify(schema)
'{"href":{"type":"String"},"text":{"type":"String","trim":true},"dropdown":{"type":"Boolean"},"dropdownList":{"type":"Array"}}'
>
答案 1 :(得分:0)
在您的对象中,您尝试分配String
,Array
,Boolean
等内容,并注意这些值不是字符串值这些只是关键字。如果你有数字,你可以这样做,所以你需要将这些值用作string values
{
href: {type: 'String'},
text: {type: 'String', trim:true},
dropdown: {type: 'Boolean'},
dropdownList: {type: 'Array'}
};
这是一个demo