Я пытался отправить файл с моего локального node.js сервера на мой клиентский индекс. html в течение некоторого времени безуспешно. Клиент использует три. js. Вот код и проблема ниже:
app.js:
var express = require('express');
var app = express();
var http = require('http').createServer(app);
var io = require('socket.io')(http);
var THREE = require('three');
var fs = require('fs');
var path = require('path');
var publicPath = path.resolve(__dirname);
console.log("publicPath: "+String(publicPath))
console.log("__dirname: "+String(__dirname))
app.get('/', function(req, res) {
res.sendFile(__dirname + '/index.html');
});
app.get('/rook.amf', function(req, res) {
console.log('test1 :: '+String(__dirname + '\\rook.amf'))
res.write(__dirname + '\\rook.amf'); // there's a javascript loader trying to get this file!
});
io.on('connection', (socket) => {
console.log('a user connected');
});
http.listen(3000, () => {
console.log('listening on *:3000');
});
Соответствует Javascript внутри индекса. html:
var loader = new THREE.AMFLoader();
loader.load('/rook.amf', function ( amfobject ) { //'/models/rook.amf'
scene.add( amfobject );
render();
} );
Теперь, когда я обновляю sh веб-страницу, я нет результата и не видно ладьи. Приведенный ниже код, взятый непосредственно из учебного пособия, отобразит трехмерную модель rook.amf в центре страницы.
ссылка: https://threejs.org/examples/webgl_loader_amf.html (ДЕМО) https://github.com/MiLeung/TiltCoaster/blob/master/serve/three/examples/webgl_loader_amf.html (КОД)
Кто-то предложил мне попытаться получить доступ к файлу напрямую и посмотреть, загружается ли он, открыв следующее в моем веб-браузере:
http://localhost:3000/rook.amf
Он не загружается , и я получаю сообщение об ошибке, которое я не понимаю:
GET http://localhost:3000/rook.amf net::ERR_INCOMPLETE_CHUNKED_ENCODING 200 (OK)
После долгих поисков я так и не понял, как отправить свой файл rook.amf (или любой файл 3D-модели в этом отношении, который Мне нужно будет сделать) с кодом javascript моего клиента в index. html. Как я могу это сделать?