Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

372
Vistas
SyntaxError: expresión esperada, obtuvo '<'

SyntaxError: expected expression, got '<' en la consola cuando estoy ejecutando el siguiente código de nodo

 var express = require('express'); var app = express(); app.all('*', function (req, res) { res.sendFile(__dirname+'/index.html') /* <= Where my ng-view is located */ }) var server = app.listen(3000, function () { var host = server.address().address var port = server.address().port })

Error :ingrese la descripción de la imagen aquí

Estoy usando Angular Js y su estructura de carpetas es la siguiente

ingrese la descripción de la imagen aquí

¿Qué me estoy perdiendo aquí?

over 4 years ago · Santiago Trujillo
3 Respuestas
Responde la pregunta

0

Este código:

 app.all('*', function (req, res) { res.sendFile(__dirname+'/index.html') /* <= Where my ng-view is located */ })

le dice a Express que no importa lo que solicite el navegador, su servidor debe devolver index.html . Entonces, cuando el navegador solicita archivos de JavaScript como jquery-xyzmain.js o angular.min.js , su servidor devuelve el contenido de index.html , que comienza con <!DOCTYPE html> , lo que provoca el error de JavaScript.

Su código dentro de la devolución de llamada debe mirar la solicitud para determinar qué archivo devolver, y/o debe usar un patrón de ruta diferente con app.all . Consulte la guía de rutas para obtener más detalles.

over 4 years ago · Santiago Trujillo Denunciar

0

Prueba esto, por lo general funciona para mí:

 app.set('appPath', 'public'); app.use(express.static(__dirname +'/public')); app.route('/*') .get(function(req, res) { res.sendfile(app.get('appPath') + '/index.html'); });

Donde el directorio public contiene mi index.html y hace referencia a todos mis archivos angulares en la carpeta bower_components.

Creo que la parte express.static sirve los archivos estáticos correctamente (archivos .js y css como se hace referencia en su index.html). A juzgar por su código, probablemente necesitará usar esta línea en su lugar:

 app.use(express.static(__dirname));

como parece, todos sus archivos JS, index.html y su archivo de servidor JS están en el mismo directorio.

Creo que lo que @TJ Crowder estaba tratando de decir era usar app.route para enviar archivos diferentes a index.html, ya que solo usar index.html hará que su programa busque archivos .html y cause el error JS.

¡Espero que esto funcione!

over 4 years ago · Santiago Trujillo Denunciar

0

La idea principal es que de alguna manera se ha devuelto HTML en lugar de Javascript.

La razón puede ser:

  • caminos equivocados
  • activos en sí

Puede deberse a una precompilación incorrecta de activos. En mi caso, detecté este error debido a una codificación incorrecta.

Cuando abrí mi application.js, vi application error Encoding::UndefinedConversionError at /assets/application.js

Hubo un seguimiento completo del error formateado como HTML en lugar de Javasript.

Asegúrese de que los activos se hayan precompilado correctamente.

over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda