Отправка файлов JavaScript с помощью Node-сервера с помощью NowJS - PullRequest
2 голосов
/ 24 декабря 2011

На этот вопрос должно быть просто ответить любому, кто имеет опыт работы с Node - к сожалению, я начинающий.

Я пишу веб-приложение для настольной игры, которое будет использовать архитектуру сервер-клиент для отображения изменений, внесенных в доску, всем клиентам. Приложение использует Рафаэль для отображения графики.

Я создал сервер, который успешно отправляет HTML-файл для ответа на любой запрос, но доска не отображается - появляется только необработанный HTML без Javascript. Я думаю, это потому, что я запрограммировал сервер всегда отвечать HTML-файлом, и я не могу понять, как отправить файлы Javascript (client.js, raphael.js) клиенту, чтобы страница могла загружаться правильно .

Соответствующий код ниже. Сейчас я просто пытаюсь заставить браузер нарисовать один элемент Raphael, чтобы я мог видеть, что клиент правильно получает файлы Javascript, необходимые ему для загрузки страницы.

На стороне сервера:

var fs = require('fs');
 var server = require('http').createServer(function(req, response){
    fs.readFile('index.html', function(err, data) {
    response.writeHead(200, {'Content-Type':'text/html'});
    response.write(data);
    response.end();
    });
});

На стороне клиента:

$(document).ready(function(){
    var R = Raphael("container", 1000, 700);
    this.R.path("M0,0l1000,700").attr({"stroke-width": "5"});
});

Вы можете предположить, что файл HTML отформатирован правильно и содержит ссылки на все файлы JS - у меня уже некоторое время отлично работало приложение без архитектуры сервер-клиент. Кроме того, я использую NowJS, поэтому любое решение, включающее эту платформу, также приветствуется.

Спасибо за любую помощь!

Ответы [ 2 ]

1 голос
/ 11 января 2012

на стороне вашего сервера вы всегда возвращаете index.html

, чтобы проверить, как метод createServer используется в этой сущности: https://gist.github.com/1245922

он оценивает расширение, чтобы вернуть правильную MIME-type, а затем вызывает функцию потокового файла для возврата запрошенного url / файла из fs.

, если вы собираетесь использовать это с nowjs, то вы также захотите использовать в следующем формате:

    var everyone = nowjs.initialize(server);
0 голосов
/ 25 декабря 2011

Использовать статическое промежуточное ПО

http://senchalabs.github.com/connect/middleware-static.html

...