javascript对象操作、代码拆分
我有一个需要拆分的对象,以便可以重用代码。 它是数据库的一个配置对象。 这是npm包中的mssql所期望看到的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 } }; 我想分开它,
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)代码>谢谢!我完全忘记了播报员。这似乎是最干净的方式:)谢谢!我完全忘记了播报员。似乎是最干净的方式:)