ES6 предлагает метод Object.assign
, который вы можете использовать следующим образом:
var obj = Object.assign(
{
maxAge: 900000,
httpOnly: true,
},
process.env.NODE_ENV === "production"
? { secure: true }
: {}
)
Это обеспечит отсутствие ключа secure
в конечном объекте, если среда не является рабочей. Если у вас все в порядке с ключом, находящимся там, но со значением false
, тогда:
var obj = {
maxAge: 900000,
httpOnly: true,
secure: process.env.NODE_ENV === "production",
}
будет достаточно.
В еще более новых версиях ECMAScript у вас есть доступ к деструктуризации объектов с помощью оператора ...
. Таким образом, вы можете превратить первый фрагмент в более краткую версию:
var obj = {
maxAge: 900000,
httpOnly: true,
...process.env.NODE_ENV === "production"
? { secure: true }
: {},
}