我第一次尝试创建.json对象的实例时陷入了一个问题。
例如,假设在我的节点项目中我有这个模型:city.json
{
"links": {
"self": null,
"parent": null
},
"id": null,
"name":{
"full": null,
"abbreviated": null,
"urlFriendlyName": null
},
"countries": null
}
我发现在我的代码中,当我通过模块顶部的require包含它时,如果我尝试不止一次使用它,我就无法完成并且最终必须创建一个实例就像这样:
我有一个实用程序模块可以执行此操作:
modelUtilities.js
var cityEntity = require('../src/entities/city');
module.exports = {
"createCityEntity": createCityEntity
.. and a bunch more helpers
};
function createCityEntity(cityId, stateId, fullname, abbreviatedName, urlFriendlyName){
var city = clone(cityEntity);
city.id = cityId;
city.name.full = fullname;
city.name.abbreviated = abbreviatedName;
city.name.urlFriendlyName = urlFriendlyName;
city.links.self = "/cities/" + cityId;
city.links.parent = "/states/" + stateId;
return city;
}
function clone(obj){
return JSON.parse(JSON.stringify(obj));
};
我不记得确切的问题,但我知道我必须做这个克隆,否则我无法得到该.json对象的多个不同实例,以便在我的SUT代码中使用,也可以用于在我的测试中重用,因为我使用该结构也为存根数据创建了一个虚拟城市。
任何想法,如果我只是在考虑.json错误或者这是否正常?或者不是?