Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

363
Views
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 answers
Answer question

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 Report

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 Report

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!