пытаясь выучить D3, я написал следующий локальный сервер:
const http = require('http');
const fs = require('fs');
function onRequest(request, response) {
response.writeHead(200, {'Content-Type': 'text/html'});
fs.readFile('./index.html', null, function(error, data) {
if (error) {
response.writeHead(404);
// response.write('file not found');
} else {
response.write(data);
}
response.end();
});
}
http.createServer(onRequest).listen(8000, '127.0.0.1');
Затем я перехожу к http://127.0.0.1:8000/, чтобы отобразить этот index.html:
<html>
<body>
<script src="https://d3js.org/d3.v5.min.js"></script>
<script>
var stringit = `[{"coin_val": 4999999,"coin_lab": "#PAX"},{"coin_val": 1100000,"coin_lab": "#USDC"}]`;
console.log('working.')
d3.json('./data.json', function(err, data) {
console.log(err)
console.log(data)
});
</script>
</body>
</html>
, ноЯ получаю следующую ошибку в консоли Chrome:
Uncaught (в обещании) SyntaxError: Неожиданный токен <в JSON на позиции 1 в Go (d3.v5.min.js: 2) Go @ d3.v5.min.js: 2 </p>
Что я делаю не так?это 3D код или я просто не правильно понял сервер?как я могу заставить D3 читать файл JSON на сервере Node.js.
Я подозреваю, что проблема не в JSON, что-то идет не так на стороне сервера и неправильно читает HTML-код?