Node.js automapper ts包未映射嵌套对象/属性
Node.js automapper-ts package not mapping nested object/properties
当我运行以下代码时,"card"节点无法作为嵌套实体加载到"source"字段中。我查看了源代码,其中声明您可以从"nested.properties"进行映射,该代码本应在项目目标中创建该对象和属性,但似乎对我不起作用。如有任何帮助,将不胜感激。
var jsf = require('json-schema-faker');
var automapper = require('automapper-ts').automapper;
var schema = {
"$schema": "http://json-schema.org/draft-04/schema#",
"name": "customer",
"title": "customer",
"description": "Canonical Customer",
"type": "object",
"properties": {
"email": {
"type": "string",
"format": "email"
},
"description": {
"type": "string"
},
"phone": {
"type": "string"
},
"card": {
"type": "object",
"properties": {
"name": {
"type": "string"
},
"expiryMonth": {
"type": "string",
"minLength": 2,
"maxLength": 2,
"pattern": "^(1[0-2])|([0][1-9])$"
},
"expiryYear": {
"type": "string",
"minLength": 4,
"maxLength": 4,
"pattern": "^20([1-9][5-9])$"
},
"number": {
"type": "string",
"pattern": "^(?:4[0-9]{12}(?:[0-9]{3})?|5[12345][0-9]{14}|3[47][0-9]{13}|3(?:0[012345]|[68][0-9])[0-9]{11}|6(?:011|5[0-9]{2})[0-9]{12}|(?:2131|1800|35[0-9]{3})[0-9]{11})$"
},
"cvc": {
"type": "integer",
"maximum": 9999
},
"zip": {
"type": "string"
}
},
"required": [
"name",
"expiryMonth",
"expiryYear",
"number",
"zip"
],
"additionalProperties": false
},
"trialEnd": {
"type": "number",
"minimum": 1448420692,
"maximum": 4098384000
}
},
"required": [
"email",
"card"
],
"additionalProperties": false
};
automapper.createMap('a', 'b')
.forMember('description', function(opts) {opts.mapFrom('description');})
.forMember('email', function(opts) { opts.mapFrom('email');})
.forMember('source.name', function(opts) { opts.mapFrom('card.name');})
.forMember('source.exp_month', function(opts){ opts.mapFrom('card.expiryMonth');})
.forMember('source.exp_year', function(opts) { opts.mapFrom('card.expiryYear');})
.forMember('source.number', function(opts){ opts.mapFrom('card.number');})
.forMember('source.address_zip', function(opts) { opts.mapFrom('card.zip');})
.forMember('source.cvc', function(opts) { opts.mapFrom('card.cvc');})
.forMember('source.object', function(){return 'card'})
.forMember('trial_end', function(opts) { opts.mapFrom('trialEnd')})
var cn = jsf(schema);
var cn2= automapper.map('a', 'b', cn);
您当前使用的是AutoMapperTS的哪个版本?1.6.1版本应该无缝地支持您尝试实现的操作类型。
请注意,库名称最近已更改,您应该安装automapper ts NPM包。旧包装上标有"过时"字样。它是同一个包,因此使用它的代码应该完全可以;)。顺便说一句,这是NPM的网址:https://www.npmjs.com/package/automapper-ts
干杯,伯特
相关文章:
- 如何使用javascript获取嵌套对象中所有子对象的单个属性
- 如何打印嵌套对象的所有值
- 设置嵌套对象属性的更好方法
- 嵌套对象结构
- 如何递归地获取嵌套对象中所有子对象的列表
- 更改嵌套对象的父子相关id
- 如何通过json对象数组为嵌套对象赋值
- Ember.js(2.5.0)如何设置嵌套对象值
- 嵌套对象文本访问父级
- 如何对两个嵌套对象进行排序
- 在javascript中使用方括号表示法的嵌套对象
- 具有嵌套对象数组的 Javascript 对象的递归搜索函数
- 更新嵌套对象的多个字段
- MongoDB嵌套对象数组后查询
- 在流星中插入嵌套对象
- 将嵌套对象数据添加到窗体中
- Chai深度包含了对嵌套对象的断言
- 使用Angular.js解析JSON中的嵌套对象数组
- 如何以编程方式添加到可变嵌套对象中
- Javascript嵌套对象访问根级别