// toHump.js
const toHump = async (ctx, next) => {
ctx.write = (obj) => ctx.body = toHumpFun(obj)
await next()
}
function toHumpFun(obj) {
const result = Array.isArray(obj) ? [] : {}
for (const key in obj) {
if (obj.hasOwnProperty(key)) {
const element = obj[key];
const index = key.indexOf('_')
let newKey = key
if (index === -1 || key.length === 1) {
result[key] = element
} else {
const keyArr = key.split('_')
const newKeyArr = keyArr.map((item, index) => {
if (index === 0) return item
return item.charAt(0).toLocaleUpperCase() + item.slice(1)
})
newKey = newKeyArr.join('')
result[newKey] = element
}
if (typeof element === 'object' && element !== null) {
result[newKey] = toHumpFun(element)
}
}
}
return result
}
module.exports = toHump
// app.js
const toHump = require('./toHump')
app.use(toHump) // 需要放在引用路由之前
使用 ctx.write(data)
替换 ctx.body = data
网友评论