有没有一个好的框架或方法来重构JavaScript对象
Is there a good framework or approach for restructuring JavaScript objects?
我正在Node.js中编写一个应用程序。我需要将从数据库层返回的JavaScript对象转换为需要从REST服务返回的JavaScript。我可能需要添加或删除某些属性,或者压平一些结构。例如,这里有一个从数据库层返回的User对象:
{
"id": 1234,
"username": "jsmith",
"person": {
"first_name": "John",
"last_name": "Smith"
}
}
我想从REST层返回的对象是
{
"_links": {
"self": { "href": "/users/jsmith" },
},
"username": "jsmith",
"firstName": "John",
"lastName": "Smith"
}
以下是变化:
- "id"属性已删除
- 已添加"链接"部分
- "person"对象已展开为父对象
- "first_name"answers"last_name"属性已从snake_case转换为camelCase
很明显,我可以手工编写这些转换中的每一个,但这将是非常低效和容易出错的。你知道有什么框架或方法可以缓解这种痛苦吗?
附言:我本质上是在寻找一种类似于Java框架的东西,叫做dozer。
在将对象推送到RESTAPI之前,您需要一个自定义函数来转换从DB返回的对象。
一个例子:
var dbObject = db.query(...); //this is what you get from your DB query
//Here is your REST API object that you will send back
var restObject = (function(obj){
var link = {
self: {
href: "/users/" + obj.username
}
};
var username = obj.username;
var firstname = obj.person.first_name;
var lastname = obj.person.last_name;
return JSON.stringify({
_links: link,
username: username,
firstName: firstname,
lastName: lastname
})
})(dbObject);
显然,这可以进行清理/自定义以适应您的代码(例如:您的DB查询可能是异步的,因此restObject
需要反映这一点)。此外,当数据库发送回一个JSON对象时,您需要考虑到这一点。
相关文章:
- 有没有一个好的框架或方法来重构JavaScript对象
- 重构 DOM 搜索方法
- 如何在我编写的JavaScript中重构Ruby的#{}方法
- 关于重构大型JavaScript方法的建议
- 在AngularJS中重构$scope操作的更好方法
- 如何重构重复的 jquery 验证方法
- 代码重构.对类的所有实例进行操作的方法
- 缩短/重构多个插件值的方法
- 有没有一个好的方法或指标来确定何时需要重构单页backbonejs应用程序
- 重构Javascript的“提取方法”;在Eclipse中导致崩溃
- 是重构这段代码的更好方法
- coffeescript jQuery -如何重构这个(新手)方法
- 我如何重构瀑布方法,从异步到使用ES6承诺?
- 重构Javascript替换方法
- JavaScript:重构对象中的方法和函数存在问题
- 是否有一个好的/简洁的方法来重构嵌入的循环,而不是使用Rx操作符
- 将赋值a.x=3重构为setter方法a的脚本->setX(3)
- 重构 npm 请求方法代码
- 正在寻找一种重构D3.js风格的方法链接模式的方法
- 有两种类似的方法,但;s看起来不太好看,其中一种方法就是重构