TypeError: Первый аргумент должен быть строкой, Buffer, ArrayBuffer, Array или массивоподобным объектом - PullRequest
0 голосов
/ 03 мая 2018

1) Я пытаюсь декодировать GET-запрос примерно так: abb197313b83ad9f16a946c8be35a0f8 , но я получаю эту ошибку.

TypeError: Первый аргумент должен быть строкой, Buffer, ArrayBuffer, Array или массивоподобным объектом.

let decoder;

    const parseMetadataString = (metadata_string) => {
    const kv_pair_list = metadata_string.split(',');

    return kv_pair_list.reduce((metadata, kv_pair) => {
        const [key, base64_value] = kv_pair.split(' ');

        metadata[key] = {
            encoded: base64_value,
            decoded: Buffer.from(base64_value, 'base64').toString('ascii'),
        };
        return decoder = metadata;
    }, {});
}

  app.get('/upload/files/:fileid', (req, res) => {
   const { fileid } = req.params;
   parseMetadataString(fileid);
   res.sendFile(__dirname + /files/ + decoder);
  });

2) Если я делаю это таким образом, я получаю эту ошибку:

TypeError: Невозможно прочитать свойство 'name' из неопределенного

Но он делает res.sendFile с правильным именем.

let decoder;

  const parseMetadataString = (metadata_string) => {
    const kv_pair_list = metadata_string.split(',');

    return kv_pair_list.reduce((metadata, kv_pair) => {
        const [key, base64_value] = kv_pair.split(' ');

        metadata[key] = {
            encoded: base64_value,
            decoded: Buffer.from(base64_value, 'base64').toString('ascii'),
        };
        return decoder = metadata;
    }, {});
}

  app.get('/upload/files/:fileid', (req, res) => {
   const { fileid } = req.params;
   res.sendFile(__dirname + /files/ + decoder.name.decoded);
});

 server.on(EVENTS.EVENT_UPLOAD_COMPLETE, (event) => {
   parseMetadataString(event.file.upload_metadata);
 });
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...