Вы можете использовать цикл forEach
и внутри split
каждую клавишу, а затем использовать reduce
для построения вложенной структуры для каждой клавиши.
var data = [["Key","data1"],["header.title","data2"],["header.tag1","data3"],["header.tag2","data4"],["body.text","data5"],["updates.title","data6"],["updates.text","data7"],["footer.title","data8"],["footer.row1.col1.title","data9"],["footer.row1.col1.text","data10"],["footer.row1.col2.title","data11"],["footer.row1.col2.text","data12"],["footer.row1.col3.title","data13"],["footer.row1.col3.text","data14"],["footer.row2.col1.title","data15"],["footer.row2.col1.text","data16"],["footer.row2.col2.title","data17"],["footer.row2.col2.text2","data18"],["footer.row2.col3.title","data19"],["footer.row2.col3.text","data20"],["footer.row3.col1.title","data22"],["footer.row3.col1.text","data23"],["footer.row3.col2.title","data24"],["footer.row3.col2.title","data25"],["footer.row3.col2.text","data26"],["footer.row3.col3.title","data27"],["footer.row3.col3.text","data28"],["footer.row4.col1.title","data29"],["footer.row4.website","data30"],["footer.row4.website-link","data31"],["footer.row4.email","data31"],["footer.row4.privacy","data32"],["footer.row4.privacy-link","data33"],["footer.row4.adr","data34"],["footer.row4.adr2","data35"],["other.short.des","data36"],["other.promovideo","data37"]]
let result = {}
data.forEach(([key, value]) => {
key.split('.').reduce((r, k, i, arr) => {
return r[k] || (r[k] = arr[i + 1] ? {} : value)
}, result)
})
console.log(result)
Правило брандмауэра действительно небезопасно (вы разрешаете всем в Интернете подключаться к вашему экземпляру GCE, используя все порты), и, возможно, другое правило брандмауэра блокирует это правило, поскольку приоритет действительно низкий (чем больше число приоритетов , более низкий приоритет имеет). Вы следовали этому учебнику? добавив listen_addresses = '*'
, вам необходимо перезапустить службу PostgreSQL с помощью sudo service postgresql restart
.
Кроме того, вам нужно создать 2 правила брандмауэра, одно для входа и другое для выхода. Оба для приема трафика на tcp:5432
, не могли бы вы создать 2 правила брандмауэра с большим приоритетом, которые принимают трафик с этого порта с меньшим диапазоном IP-адресов?