错误消息显示意外的尖括号,但应该没有意想不到的尖括号

我写了一些代码,我从我的节点服务器node.js 。 我已经得到了HTML服务,但是当我开始向index.html文件添加脚本时,我发现在开发者控制台中出现了最奇怪的错误:

 Uncaught SyntaxError: Unexpected token < jquery-1.12.4.min.js:1 Uncaught SyntaxError: Unexpected token < hack.js:1 

这是我的HTML:

 <!DOCTYPE HTML> <html> <head> <link rel="stylesheet" type="text/css" href="hack.css"> </head> <body> <h1>Colour Hack v1.0</h1> <p>Guess the correct values for each colour to unlock information on the European Union.</p> <script src="jquery-1.12.4.min.js"></script> <script src="hack.js"></script> </body> </html> 

hack.js代码:

 const box = "<canvas>BOX</canvas>" $(document).ready(function() { $("p").append(box); }); 

而节点服务器( server.js )的代码是:

 //Import http and file server libraries const http = require('http'); const fs = require('fs'); //Define port for comms const PORT = 8080; //Start server http.createServer(function(request, response) { response.writeHead(200); fs.readFile('index.html', function(err, contents) { response.write(contents); response.end; }); }).listen(PORT); console.log('Server listening on port: %s', PORT); 

为什么出现有关意外尖括号的错误?

您正在使用index.html的内容来响应您对服务器的每个请求。 因此, < index.html文件的第一行是<!DOCTYPE HTML> 。 (在“networking”选项卡中查看浏览器的开发工具,然后查看服务器为这些JavaScript文件返回的内容。)

您需要查看所请求的内容并返回正确的资源(请参阅IncomingMessage的文档,这是一个request – 例如,您可以从url属性中获取请求的URL),或者使用一个库(如ExpressJS)很高兴为你做到这一点。