Node.js 使用JSON.stringify将符号转换为字符串
我需要将一个符号转换为字符串,以便在Redis中创建一个唯一的键,但我不能 我已经尝试使用Object.toString(obj)和String(obj),但我得到了错误或[Object]结果 这是控制器Node.js 使用JSON.stringify将符号转换为字符串,node.js,redis,sequelize.js,stringify,Node.js,Redis,Sequelize.js,Stringify,我需要将一个符号转换为字符串,以便在Redis中创建一个唯一的键,但我不能 我已经尝试使用Object.toString(obj)和String(obj),但我得到了错误或[Object]结果 这是控制器 const name = req.params.name; let obj; obj.data.name = { [Op.like]: '%' + name + '%' }; } 这是我使用stringify的redis控制器。我使用obj作为参数 con
const name = req.params.name;
let obj;
obj.data.name = {
[Op.like]: '%' + name + '%'
};
}
这是我使用stringify的redis控制器。我使用obj作为参数
const hashed = crypto.createHmac('sha256', secretHashKey)
.update(JSON.stringify(obj))
.digest('hex');
我希望得到基于参数“obj”的输出,但现在它没有得到,因此我无法为不同的值创建唯一的键。如果您的意思是不能将它们转换为字符串
它们被创建为独特且“不可恢复”,因此您也可以使用它们来保持各种属性或方法的更“安全”。例如:
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' }
除非您有原始符号,否则无法损坏原始符号
另一个例子():
希望这些信息能对你有所帮助
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' }