Javascript express应用程序中未捕获的语法错误
我试图用WebSocket将实时数据流传输到Chartjs,但是我一直收到以下错误 main.js:1未捕获的语法错误:意外标记< 我做错了什么 我的服务器代码/html如下所示: server.js index.htmlJavascript express应用程序中未捕获的语法错误,javascript,html,node.js,express,chart.js,Javascript,Html,Node.js,Express,Chart.js,我试图用WebSocket将实时数据流传输到Chartjs,但是我一直收到以下错误 main.js:1未捕获的语法错误:意外标记< 我做错了什么 我的服务器代码/html如下所示: server.js index.html 您的Express应用程序配置如下: const server = express() .use((req, res) => res.sendFile(INDEX)) .listen(PORT, () => console.log(`Listening
您的Express应用程序配置如下:
const server = express()
.use((req, res) => res.sendFile(INDEX))
.listen(PORT, () => console.log(`Listening on ${ PORT }`));
调用.use()
,但没有指定像建议的那样的路径?这意味着您的应用程序收到的每一个请求,都会发出INDEX
指定的文件。因此,当浏览器解析index.html
并看到指向main.js
的
标记时,它会向应用程序请求/main.js
并获取索引。当您的浏览器需要Javascript但得到HTML时,它会抛出您在控制台中看到的语法错误
尝试在应用程序中使用显式路由和中间件功能(以及HTTP请求类型):
app.get('/index.html', function(req, res) {
res.sendFile(INDEX);
});
app.get('/main.js', function(req, res) {
res.sendFile('/path/to/main.js');
});
(这是一个简单的例子,但应该让您开始学习。)图像中的文件main.js
看起来与您在此处发布的代码片段完全不同。它包含HTML标记,难怪会出现语法错误。main.js不包含任何HTML,当您访问错误时,它会将您带到index.HTML。在图像中,看起来您打开了main.js
文件,它以
开头。当您看到错误消息时,这是有道理的,不是吗?我发布了一个.gif来更好地说明我所看到的。从我在gif中看到的,(索引)
和main.js
文件都包含HTML代码。我如何包含节点模块?对于那些想知道app.use的人,使用('/node\u modules',express.static(path.join(u dirname,'node_modules'));
console.log("hello,world");
var ctx = document.getElementById("myChart");
var myChart = new Chart(ctx, {
type: 'bar',
data: {
labels: ["Red", "Blue", "Yellow", "Green", "Purple", "Orange"],
datasets: [{
label: '# of Votes',
data: [12, 19, 3, 5, 2, 3],
backgroundColor: [
'rgba(255, 99, 132, 0.2)',
'rgba(54, 162, 235, 0.2)',
'rgba(255, 206, 86, 0.2)',
'rgba(75, 192, 192, 0.2)',
'rgba(153, 102, 255, 0.2)',
'rgba(255, 159, 64, 0.2)'
],
borderColor: [
'rgba(255,99,132,1)',
'rgba(54, 162, 235, 1)',
'rgba(255, 206, 86, 1)',
'rgba(75, 192, 192, 1)',
'rgba(153, 102, 255, 1)',
'rgba(255, 159, 64, 1)'
],
borderWidth: 1
}]
},
options: {
scales: {
yAxes: [{
ticks: {
beginAtZero:true
}
}]
}
}
});
const server = express()
.use((req, res) => res.sendFile(INDEX))
.listen(PORT, () => console.log(`Listening on ${ PORT }`));
app.get('/index.html', function(req, res) {
res.sendFile(INDEX);
});
app.get('/main.js', function(req, res) {
res.sendFile('/path/to/main.js');
});