我使用dockerode和使用cat命令的读流来解析文件的内容,但是我也得到了编码的字符,我假设它们是用于定义文件格式的。我知道我可以通过从字符串的开头删除x字符来删除它们,尽管我觉得可能有一种更好更安全的方法来正确阅读文件。
container.exec({
Cmd: ['sh', '-c', 'cat /myfile.json'],
AttachStdin: true,
AttachStdout: true,
AttachStderr: true,
}, (err, exec) => {
exec.start({
stdin: true
}, (err, stream) => {
if (err) {
return res.status(500).json({
success: false,
message: 'Error reading file.',
});
}
let data = '';
stream.on('data', (chunk) => {
data += chunk;
});
stream.on('end', () => {
return res.status(200).json({
success: true,
data
});
});
});
});
文件的原始内容是[]
,但它返回\x01\x00\x00\x00\x00\x00\x00\x02[]
我怎么能只得到[]
的内容而不使用类似于子字符串的方法?
1条答案
按热度按时间xytpbqjk1#
我找不到其他的解决方案,substringing前八个字符,甚至使用
stream#setEncoding
。如果任何人有更好的解决方案,请随时在这里张贴,因为这仍然是普遍未解决的,应该被视为一个黑客的废话。