Thursday 20 April 2017

TypeError: dates.map is not a function

estoy haciendo una aplicación en con node.js, y la ejecuto localmente y me funciona correctamente pero cuando hago el deploy a AWS me sale este error "dates.map is not a function".

Dejo el código de donde me sale error. Mil gracias.

module.exports = function (ctx, dates) {
 console.log(dates);
 var authenticated = yo`<div class="container timeline cont-estadisticas">
 <div id="top-menu" class="container">
  <div class="row">
    <ul class="tabs-menu-redes">
      <li class="current"><a href="#facebook"><i class="fa fa-facebook" aria-hidden="true"></i>Facebook</a></li>
      <li><a href="#instagram"><i class="fa fa-instagram" aria-hidden="true"></i>Instagram</a></li>
      <li><a href="#twitter"><i class="fa fa-twitter" aria-hidden="true"></i>Twitter</a></li>
    </ul>
  </div>
 </div>
 <div class="cont-redes">
  <div id="facebook" class="row tab-content-redes" style="display:block" >
  ${dates.map(function (dato){
    if(dato.userId === ctx.auth.username){
      hay = buscardatosfb(ctx, dates, dato);
      if(hay === 1){
        hay = 0;
        ++mostrardatosfb
        if(mostrardatosfb === 1){
          return yo`<div><div class="col m3 cont-menu">
            <div class="logo-cliente">
              <img src="${ctx.auth.src}"  />
            </div>
            <ul class="tabs-menu-datos collapsible" data-collapsible="accordion">
                  ${dates.map(function (dato){
                    var index = anoatc.indexOf(dato.year);
                    if(index === -1 & dato.userId === ctx.auth.username & dato.red === 'fb'){
                    anoatc.push(dato.year);
                    anomes = dato.year;
                    return  yo`<li class="liYear">
                      <div class="collapsible-header"><a class="ayear" href="#fb${dato.year}">${dato.year}</a>
                        <i class="fa fa-chevron-down rotate"  style="transition: all 2s linear;transform: rotate(0deg);float: right;font-size:12px;"></i>
                      </div>
                      <div class="collapsible-body">
                        <ul class="menumonths menu-lateral">
                          ${dates.map(function (dato){
                            if(anomes === dato.year & dato.type === 'month' & dato.red === 'fb' & dato.userId === ctx.auth.username){
                              return menumonth (dato);
                            }
                          })}
                        </ul>
                      </div>
                    </li>`
                    }
                  })}
            </ul>
          </div>
          <div class="cont-meses">
            ${dates.map(function (dato){
              if(dato.userId === ctx.auth.username & dato.red === 'fb'){
                if(dato.type === 'year'  ){
                  return vistaano (dato);
                }else{
                  return vistadato (dato);
                }
              }
            })}
          </div></div>`
        }
      }
      else if (hay === 2){
        hay = 0;
        ++contfb
        if(contfb === 1){
          return yo`<h1 class="title-error"><i class="fa fa-exclamation-triangle" aria-hidden="true"></i>No existen datos</h1>`
        }
      }
    }
  })}

</div>

<div id="instagram" class="row tab-content-redes">
  ${dates.map(function (dato){
    if(dato.userId === ctx.auth.username){
      hay = buscardatosins(ctx, dates, dato);
      if(hay === 1){
        hay = 0;
        ++mostrardatosinst
        if(mostrardatosinst === 1){
          return yo`<div><div class="col m3 cont-menu">
            <div class="logo-cliente">
              <img src="${ctx.auth.src}"  />
            </div>
            <ul class="tabs-menu-datos collapsible" data-collapsible="accordion">
                  ${dates.map(function (dato){
                    var index = anoatcinst.indexOf(dato.year);
                    if(index === -1 & dato.userId === ctx.auth.username & dato.red === 'inst' ){
                    anoatcinst.push(dato.year);
                    anomesins = dato.year;
                    return  yo`<li class="liYear">
                      <div class="collapsible-header"><a class="ayear" href="#inst${dato.year}">${dato.year}</a>
                        <i class="fa fa-chevron-down rotate"  style="transition: all 2s linear;transform: rotate(0deg);float: right;font-size:12px;"></i>
                      </div>
                      <div class="collapsible-body">
                        <ul class="menumonths menu-lateral">
                          ${dates.map(function (dato){
                            if(anomesins === dato.year & dato.type === 'month' & dato.red === 'inst' &  dato.userId === ctx.auth.username){
                              return menumonth (dato);
                            }
                          })}
                        </ul>
                      </div>
                    </li>`
                    }
                  })}
            </ul>
          </div>
          <div class="cont-meses">
            ${dates.map(function (dato){
              if(dato.userId === ctx.auth.username & dato.red === 'inst'){
                  return vistainst (dato);
              }
            })}
          </div></div>`
        }
      }
      else if (hay === 2){
        hay = 0;
        ++contins
        if(contins === 1){
          return yo`<h1 class="title-error"><i class="fa fa-exclamation-triangle" aria-hidden="true"></i>No existen datos</h1>`
        }
      }
    }
  })}

</div>
<div id="twitter" class="row tab-content-redes">
    ${dates.map(function (dato){
      if(dato.userId === ctx.auth.username){
        hay = buscardatostw(ctx, dates, dato);
        if(hay === 1){
          hay = 0;
          ++mostrardatostw
          if(mostrardatostw === 1){
            return yo`<div><div class="col m3 cont-menu">
              <div class="logo-cliente">
                <img src="${ctx.auth.src}"  />
              </div>
              <ul class="tabs-menu-datos collapsible" data-collapsible="accordion">
                    ${dates.map(function (dato){
                      var index = anoatctw.indexOf(dato.year);
                      if(index === -1 & dato.userId === ctx.auth.username & dato.red === 'tw'){
                      anoatctw.push(dato.year);
                      anomestw = dato.year;
                      return  yo`<li class="liYear">
                        <div class="collapsible-header"><a class="ayear" href="#tw${dato.year}">${dato.year}</a>
                          <i class="fa fa-chevron-down rotate"  style="transition: all 2s linear;transform: rotate(0deg);float: right;font-size:12px;"></i>
                        </div>
                        <div class="collapsible-body">
                          <ul class="menumonths menu-lateral">
                            ${dates.map(function (dato){
                              if(anomestw === dato.year & dato.type === 'month' & dato.red === 'tw' &  dato.userId === ctx.auth.username){
                                return menumonth (dato);
                              }
                            })}
                          </ul>
                        </div>
                      </li>`
                      }
                    })}
              </ul>
            </div>
            <div class="cont-meses">
              ${dates.map(function (dato){
                if(dato.red === 'tw' & dato.userId === ctx.auth.username){
                    return vistatw (dato);
                }

              })}
            </div></div>`
          }
        }
        else if (hay === 2){
          hay = 0;
          ++conttw
          if(conttw === 1){
            return yo`<h1 class="title-error"><i class="fa fa-exclamation-triangle" aria-hidden="true"></i>No existen datos</h1>`
          }
        }
      }
    })}
</div>

   </div>
 </div>`;

 var signin = yo`<div class="container container-login">
   <div class="row">
     <div class="col l12">
       <div class="row">
        <h3 class="everlytics">EVERMETRICS</h3>
       </div>
     </div>
    <div class="col l12">
          <div class="row">
            <div class="signup-box">
              <form class="signup-form" action="/login" method="POST">
                <div class="section cont-form-login" style="text-align:center;">
                  <input type="text" name="username" placeholder="Nombre de usuario">
                  <input type="password" name="password" placeholder="Contraseña">
                  <button class="btn waves-effect waves-light btn-login" type="submit">Iniciar sesión</button>
                </div>
              </form>
            </div>
            <div class="row">
              <a href="/signup">No tienes una cuenta</a>
            </div>
          </div>
      </div>
  </div>
</div>`

 if(ctx.auth){
  return layout(authenticated);
 } else {
  return layout(signin);
 }
}

Este es el error que me sale

 TypeError: dates.map is not a function
   at module.exports (app.js:21190)
   at $.fn.countTo.options (app.js:20940)
   at app.js:14574
   at nextEnter (app.js:14406)
   at app.js:21112



via William Serna

No comments:

Post a Comment