gpt4 book ai didi

node.js - 使用 JSON.stringify 将符号转为字符串

转载 作者:可可西里 更新时间:2023-11-01 11:47:46 26 4
gpt4 key购买 nike

我需要将 Symbol 转换为字符串,以便在 Redis 中创建唯一键,但我做不到。

我已经尝试使用 Object.toString(obj) 和 String(obj) 但我得到错误或 [Object] 结果…。

这是 Controller

const name = req.params.name;
let obj;
obj.data.name = {
[Op.like]: '%' + name + '%'
};
}

这是我使用 stringify 的 redis Controller 。我使用 obj 作为参数。

const hashed = crypto.createHmac('sha256', secretHashKey)
.update(JSON.stringify(obj))
.digest('hex');

我希望得到基于我的参数“obj”的输出,但现在没有得到它,所以我无法为不同的值创建唯一键。

最佳答案

如果你的意思是 these Symbols您不能将它们转换为字符串。

它们被创建为唯一且“不可逆”,因此您也可以使用它们来保持更“安全”的各种属性或方法。示例:

const a = Symbol('a')

class Foobar {
constructor (_a) {
this[a] = _a
}
}

const foobar = new Foobar('aaa')
console.log(foobar) // output: Foobar { [Symbol(a)]: 'aaa' }

const fake = Symbol('a')
foobar[fake] = 'fake'
console.log(foobar) // output: Foobar { [Symbol(a)]: 'aaa', [Symbol(a)]: 'fake' }

除非您拥有原始符号,否则您无法破坏原始符号。

另一个例子(info about the JSON.stringify here):

const a = Symbol('a')

const foobar = {}
foobar[a] = 'aaa'

console.log(foobar) // output: { [Symbol(a)]: 'aaa' }
console.log(JSON.stringify(foobar)) // output: {}

const fake = Symbol('a')
foobar[fake] = 'fake'
console.log(foobar) // output: { [Symbol(a)]: 'aaa', [Symbol(a)]: 'fake' }

希望这些信息对您有所帮助。

关于node.js - 使用 JSON.stringify 将符号转为字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57161379/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com