I am not sure how to express my question correctly. Basically resolving an async promise with a .map() function works for simple get functions while it doesn't work for get functions with parameter.
Basically, in this case, router.get('/' ... the following works:
import axios from 'axios'
const url = 'http://localhost:3000/api/library/'
class libraryService {
  // Get stories
  static getStories () {
    return new Promise(async (resolve, reject) => {
      try {
        const res = await axios.get(url)
        const data = res.data
        resolve(
          data.map(story => ({
            ...story
          }))
        )
      } catch (err) {
        reject(err)
      }
    })
  }
export default libraryService
While in this case, router.get('/:story_name' ..., this variation doesn't work:
class readService {
  // Get story to read
  static getStoryToRead (storyName) {
    return new Promise(async (resolve, reject) => {
      try {
        const res = await axios.get(url + storyName)
        const data = res.data
        resolve(
          data.map(selectedStory => ({
            ...selectedStory
          }))
...
In here I get an error: 'data.map is not a function'.
Changing to data.products.map() will return an error 'Cannot read property 'map' of undefined'.
However resolving data without .map() function will work on all cases:
try {
        const res = await axios.get(...)
        const data = res.data
        resolve(
          data
        )
...
Why this is happening and is it correct to just use resolve(data)?
 
     
    