Как правильно экспортировать ответ моей асинхронной функции. Node.JS

Есть функция parser.js

const getSongsObject = async () => {
  for (let i = 0; i < names.length; i++) {
    try {
      const metadata = await mm.parseFile(`${__dirname}\\${names[i]}`);
        let picture = metadata.common.picture[0];
        let encodedPicture = `data:${picture.format};base64,${picture.data.toString('base64')}`;
        let trackDuration = metadata.format.duration;
        let trackTitle = metadata.common.title;
        let trackArtist = metadata.common.artist;
        let id = Date.now();
          let trackObj = { id, trackTitle, trackArtist, trackDuration, encodedPicture }
          songsObjectArray.push(trackObj);
    } catch (error) {
        console.error(error.message);
    }
  } return songsObjectArray;
}
const songsArray = getSongsObject().then(() => {});

module.exports = songsArray

нужно ее return экспортировать в main.js

const getSongsObject = require('../music/dataParser')

const exportedValue =  async () => {
    await getSongsObject().then((result) =>{
        console.log(result);
    })
}

exportedValue() // getSongsObject is not a function

Ответы (1 шт):

Автор решения: Mirikkingg

Я возвращал пуш (push возвращает длину массива), и не правильно экспортировал.

const getSongsObject = async () => {
  for (let i = 0; i < names.length; i++) {
    try {
      const metadata = await mm.parseFile(`${__dirname}\\${names[i]}`);
        let picture = metadata.common.picture[0];
        let encodedPicture = `data:${picture.format};base64,${picture.data.toString('base64')}`;
        let trackDuration = metadata.format.duration;
        let trackTitle = metadata.common.title;
        let trackArtist = metadata.common.artist;
        let id = Date.now();
          let trackObj = { id, trackTitle, trackArtist, trackDuration, encodedPicture }
          songsObjectArray.push(trackObj);
    } catch (error) {
        console.error(error.message);
    }
  } return songsObjectArray;
}

module.exports = {
  getSongsObject
}


// main

const dp = require('../music/dataParser')

dp.getSongsObject().then((result) => {console.log(result)})
→ Ссылка