ПРИМЕЧАНИЕ: когда я впервые опубликовал этот вопрос ... я даже не знал, с чего начать, и даже как правильно задать вопрос. После нескольких комментариев я добавил больше данных к вопросу, а затем в конце концов изменил название вопроса на то, что есть сейчас - спасибо всем за помощь!
Я использую Nodejs в серверном приложении. используя визуальный код для моего отладчика.
Я читаю файл Garmin Fit File с диска, используя этот код:
var fName = path.join(__dirname, './4861335825.fit');
fs.readFile(fName, function (err, content) {
«Содержимое» содержит следующее:
Я загружаю ЖЕ Файл Garmin Fit через вызов REST. Вот как выглядит ответ от вызова REST
Вот заголовок ответа:
Я пытаюсь сделать так, чтобы response.data был таким же, как когда я читал его с диска. Вот код, в котором я пытаюсь создать буфер для чтения данных
encoding = 'utf8'
const buf1 = Buffer.from(response.data, encoding);
Согласно комментарию Пойнти, я попытался использовать следующую кодировку для вызова REST ОБА сбой
encoding = 'utf8';
encoding = 'utf16le';
Вот как выглядит буфер:
Файлы ЖЕ , разница один считывает диск, а другой пытается прочитать данные response.data из вызова REST, который его загружает.
Данные в обоих буферах выглядят одинаково:
[14, 16, 77, ...]
Однако тип и размеры радикально отличаются:
Следует также отметить, что файл, считываемый с диска, успешно анализируется с использованием подгонки -file-анализатор. Один из вызовов REST не может разобрать.
Вот код синтаксического анализа, который я использую этот синтаксический анализатор: https://www.npmjs.com/package/fit-file-parser
// Create a FitParser instance (options argument is optional)
var fitParser = new FitParser({
force: true,
speedUnit: 'km/h',
lengthUnit: 'km',
temperatureUnit: 'kelvin',
elapsedRecordField: true,
mode: 'cascade',
});
var error = null;
var data = null;
try{
fitParser.parse(responseData, function (error, data){
if(error){
console.log(error);
return null;
}
return data;
});
}
catch(err){
console.log('error',err);
}
Как я могу сделать Буфер из REST скачать так же, как тот, который считывается с диска?