Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/362.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/79.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript express应用程序中未捕获的语法错误_Javascript_Html_Node.js_Express_Chart.js - Fatal编程技术网

Javascript express应用程序中未捕获的语法错误

Javascript 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

我试图用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 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');
});