我想通过NPM脚本传递一个对象,如
"update-user-roles": "ts-node user-roles.ts {PAID_USER: true, VIP: true}"
我的函数拾取了对象,但不断添加额外的逗号,所以它没有正确地更新用户。如何按原样接收对象?
async function updateUserRoles(roles: any) {
const userID = await getAuth().then((res) => res.uid);
updateUser({
userID: userID,
fields: {
roles: {
roles
},
}
})
console.log(`User roles successfully added: ${roles}`)
}
const rolesString = JSON.stringify(process.argv.slice(2))
updateUserRoles(JSON.parse(rolesString))
我收到以下消息:
User roles successfully added: {PAID_USER:,true,,VIP:,true}
1条答案
按热度按时间0dxa2lsx1#
你得到逗号
,
的原因是因为Nodejs会在空白处分割命令行参数。process.argv
数组如下所示:process.argv
属性返回一个数组,其中包含启动Node.js进程时传递的命令行参数。选项1.传入JSON字符串
index.ts
输出:
选项2.传入字符串,解析为JSON字符串。
index.ts
:输出:
选项3,使用minimistjs包。