Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/423.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/40.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/amazon-web-services/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
javascript对象操作、代码拆分_Javascript_Node.js_Object - Fatal编程技术网

javascript对象操作、代码拆分

javascript对象操作、代码拆分,javascript,node.js,object,Javascript,Node.js,Object,我有一个需要拆分的对象,以便可以重用代码。 它是数据库的一个配置对象。 这是npm包中的mssql所期望看到的 const config = { user: process.env.USER, password: process.env.PASS, server: process.env.SERVER, database: process.env.DB, options: { encrypt: false } }; 我想分开它,

我有一个需要拆分的对象,以便可以重用代码。 它是数据库的一个配置对象。 这是npm包中的mssql所期望看到的

const config = {
    user: process.env.USER,
    password: process.env.PASS,
    server: process.env.SERVER,
    database: process.env.DB,

    options: {
        encrypt: false
    }
};
我想分开它,这样我就可以有两个分开的对象,我仍然可以结合在一起使用,但我不知道如何做到这一点

const config = {
    user: process.env.USER,
    password: process.env.PASS,
    server: process.env.SERVER,
    database: process.env.DB
}

const options = {
    encrypt: false
}
我想要这样的东西,这样我就可以在将2用于
mssql
时以某种方式组合起来,但是我仍然可以在其他地方使用
const-config
,而不使用
选项。
这可能吗?
当我把两者结合起来时,我已经尝试过了

constmssqlconfig={connection:config,options}但是这给了我一组额外的
{}
关于
config
,我不需要。任何帮助都将不胜感激!谢谢大家!

可能是
对象。分配
是您要寻找的:

const-config={
用户:“process.env.user”,
密码:“process.env.PASS”,
服务器:“process.env.server”,
数据库:“process.env.DB”
}
常量选项={
加密:false
}
constboth=Object.assign({
选项:选项
},config);

console.log(两个)可能
对象。分配
是您要查找的:

const-config={
用户:“process.env.user”,
密码:“process.env.PASS”,
服务器:“process.env.server”,
数据库:“process.env.DB”
}
常量选项={
加密:false
}
constboth=Object.assign({
选项:选项
},config);

console.log(两个)当您要使用它时,复制一份
config
并向其中添加
选项。您可以使用
Object.assign
(这是一个浅拷贝,但您的
config
没有嵌套对象)创建副本

如果还要复制
选项

var configToUse = Object.assign({}, config, {options: Object.assign({}, options)});
您也可以使用ES2018+的属性价差表示法:ª

const configToUse = {...config, options}; // Doesn't copy options, just uses it
// or
const configToUse = {...config, options: {...options}};


是的,真的。阵列排列在ES2015中,但属性排列直到ES2018才出现。

当您使用它时,请复制一份
config
并向其添加
选项。您可以使用
Object.assign
(这是一个浅拷贝,但您的
config
没有嵌套对象)创建副本

如果还要复制
选项

var configToUse = Object.assign({}, config, {options: Object.assign({}, options)});
您也可以使用ES2018+的属性价差表示法:ª

const configToUse = {...config, options}; // Doesn't copy options, just uses it
// or
const configToUse = {...config, options: {...options}};


是的,真的。阵列排列在ES2015中,但属性排列直到ES2018才出现。

如果使用ES6,则可以使用排列运算符:

比如:


const mssqlConfig={…config,options}

如果您使用的是ES6,则可以使用扩展运算符:

比如:


const mssqlConfig={…config,options}

对于ES2018+,您可以使用spread(
..
)操作符将对象属性扩展到新对象上,这正是您想要的

const-config={
用户:“process.env.user”,
密码:“process.env.PASS”,
服务器:“process.env.server”,
数据库:“process.env.DB”
}
常量选项={
加密:false
}
常量mssqlConfig={…配置,选项};

console.log(mssqlConfig)
使用ES2018+,您可以使用spread(
)操作符将对象属性扩展到新对象上,这正是您想要的

const-config={
用户:“process.env.user”,
密码:“process.env.PASS”,
服务器:“process.env.server”,
数据库:“process.env.DB”
}
常量选项={
加密:false
}
常量mssqlConfig={…配置,选项};

console.log(mssqlConfig)我认为您要做的是使用Object.assign(dest,source),此方法将密钥从一个对象复制到另一个对象,例如:

const-config={
prop1:'属性值',
prop2:'prop2值',
}
常量选项={
加密:false
}
分配(配置、选项);

console.log(config)我认为您要做的是使用Object.assign(dest,source),此方法将密钥从一个对象复制到另一个对象,例如:

const-config={
prop1:'属性值',
prop2:'prop2值',
}
常量选项={
加密:false
}
分配(配置、选项);

console.log(config)谢谢!我完全忘记了播报员。这似乎是最干净的方式:)谢谢!我完全忘记了播报员。似乎是最干净的方式:)