我在Node.js应用程序中使用levelup保存十六进制字符串。
const levelUP = require('levelup');
const levelDown = require('leveldown');
const db = levelUP(levelDown('./names.db'), (er, up) => {
if (er) { return; }
let id = 'id3';
let hex = '5aeb8824b68cd4a3aa4f2fd0cd8';
console.log('Saving:', hex);
db.put(id, hex).then(() => {
db.get(id).then(value => {
console.log('Loaded:', value);
});
});
});
put
中的值当然是一个字符串,甚至typeof hex
都会返回string
。从get返回的值是Uint8Array。如果十六进制被视为一个简单的字符串(而不是十六进制编码的字节数组),那么这些字节的值是正确的。然而,没有任何意义,因为文档另有说明。可能有什么不对?