Uncaught SyntaxError: Token imprevisto <in nodejs

Sto ottenendo l’errore di screen shot qui sotto quando provo a pubblicare il mio codice lato client. Quando sto cercando di eseguire node server / server.js

inserisci la descrizione dell'immagine qui

Il seguente è il mio codice server.js …

app.use(express.static(path.join(__dirname, "public"))); app.use(logger('dev')); app.use(bodyParser.json({limit: '50mb'})); app.all('/*', function(req, res, next){ res.header("Access-Control-Allow-Origin", "*"); res.header("Access-Control-Allow-Methods", "GET, PUT, POST, DELETE, OPTIONS"); res.header("Access-Control-Allow-Headers", "Content-type,Accept,X-Access-Token,X-Key"); if(req.method === 'OPTIONS'){ res.status(200).end(); } else { next(); } }); app.all("/api/v1/*", [require('./middlewares/validateRequest')]); app.use("/", require("./routes")); app.use(function(req, res, next){ var err = new Error("Not found"); err.status = 404; next(err); }); 

All’interno dei miei routes/index.js , ho il seguente per get request .

 router.get('*', function(req, res) { res.sendfile('./public/index.html'); }); 

Di solito accade che quando il browser richiede un file javascript, il server invia un file html. Ciò è dovuto a regole come app.get('*'... Quindi dobbiamo dire al server di inviare prima i file statici e quindi dichiarare le regole, come mostrato di seguito:

 // Declare static folder to be served. It contains the js, images, css, etc. app.use(express.static('build')); // Serve the index.html for all the other requests so that the // router in the javascript app can render the necessary components app.get('*',function(req,res){ res.sendFile(path.join(__dirname+'/build/index.html')); //__dirname : It will resolve to your project folder. }); 

la mia struttura di cartelle

 node(folder) server.js -client(f) -index.html -views(f) -js(f) -ctrl(f) -service(f) -app.js -state.js 

e

 app.use(express.static('client')); app.get('/index.html', function (req, res) { res.sendfile(_dirname+'/index.html'); }); 

chiamalo dal browser http://127.0.0.1:1956/index.html

 var server = app.listen(1956, function (req, res) { var host = server.address().address var port = server.address().port console.log("app listening at", host, port) }); 

sta funzionando bene per me

Penso che questo possa essere causato dal tuo file /public/index.html. Quando includi i file js nell’index.html, c’è qualche problema con la proprietà “src”. Pertanto restituirà un file html “non trovato” invece del file js effettivo.

Immagino che parte del problema sia nel tuo router

Nei tuoi routes/index.js cambia la richiesta di get a

 router.get('/', function(req, res) { res.sendfile('./public/index.html'); }); 

Inoltre stai rivestendo i tuoi beni con gulp o qualcosa di simile? Se no, allora come stai servendo il tuo patrimonio?

Ti consiglio di servire le tue risorse in modo statico o di usare il gulp